<html>
<head><meta charset="utf-8"><title>issue-51710-lazy-causal-tracking · t-compiler/wg-nll · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/index.html">t-compiler/wg-nll</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html">issue-51710-lazy-causal-tracking</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="128474530"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128474530" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128474530">(Jun 22 2018 at 14:07)</a>:</h4>
<p>I just opened <a href="https://github.com/rust-lang/rust/issues/51710" target="_blank" title="https://github.com/rust-lang/rust/issues/51710">https://github.com/rust-lang/rust/issues/51710</a>, which describes a way to win 4% more in performance. Anybody interested in working on this? (I could also do a twitter call out)</p>



<a name="128474826"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128474826" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128474826">(Jun 22 2018 at 14:14)</a>:</h4>
<p>I'd be interested</p>



<a name="128475026"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128475026" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128475026">(Jun 22 2018 at 14:19)</a>:</h4>
<p>ok let me know if the directions need clarification :)</p>



<a name="128476172"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128476172" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128476172">(Jun 22 2018 at 14:44)</a>:</h4>
<p><span class="emoji emoji-1f44d" title="+1">:+1:</span></p>



<a name="128476182"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128476182" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128476182">(Jun 22 2018 at 14:44)</a>:</h4>
<p>how urgent is this?</p>



<a name="128477154"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128477154" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128477154">(Jun 22 2018 at 15:05)</a>:</h4>
<p>I would call it one of the top priority tasks? tackling perf + diagnostics together</p>



<a name="128619045"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128619045" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128619045">(Jun 25 2018 at 19:46)</a>:</h4>
<p>did you look into this at all <span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> ?</p>



<a name="128623043"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128623043" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128623043">(Jun 25 2018 at 21:06)</a>:</h4>
<p>not yet, I can start now I guess</p>



<a name="128651791"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128651791" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128651791">(Jun 26 2018 at 11:25)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> how goes? :)</p>



<a name="128657251"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128657251" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128657251">(Jun 26 2018 at 13:48)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> couldn't start yesterday, but I'm going to start in a bit</p>



<a name="128671922"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128671922" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128671922">(Jun 26 2018 at 18:35)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> I've started</p>



<a name="128671924"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128671924" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128671924">(Jun 26 2018 at 18:35)</a>:</h4>
<p>removed <a href="https://github.com/spastorino/rust/commit/8cf540a8183e864e1dafda032c94aee6d50e2adf" target="_blank" title="https://github.com/spastorino/rust/commit/8cf540a8183e864e1dafda032c94aee6d50e2adf">https://github.com/spastorino/rust/commit/8cf540a8183e864e1dafda032c94aee6d50e2adf</a></p>



<a name="128672036"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672036" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672036">(Jun 26 2018 at 18:37)</a>:</h4>
<p>the idea now is here <a href="https://github.com/rust-lang/rust/blob/01dbfdaf4f45b68b49332b8785262a3a780d0a19/src/librustc_mir/borrow_check/nll/region_infer/mod.rs#L1067-L1068" target="_blank" title="https://github.com/rust-lang/rust/blob/01dbfdaf4f45b68b49332b8785262a3a780d0a19/src/librustc_mir/borrow_check/nll/region_infer/mod.rs#L1067-L1068">https://github.com/rust-lang/rust/blob/01dbfdaf4f45b68b49332b8785262a3a780d0a19/src/librustc_mir/borrow_check/nll/region_infer/mod.rs#L1067-L1068</a></p>



<a name="128672043"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672043" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672043">(Jun 26 2018 at 18:37)</a>:</h4>
<p>instead of that</p>



<a name="128672107"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672107" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672107">(Jun 26 2018 at 18:38)</a>:</h4>
<p>do ... <code>BFS over the MIR graph from elem (a Location), looking for points that may use the region region_sub that we are interested in</code></p>



<a name="128672155"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672155" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672155">(Jun 26 2018 at 18:39)</a>:</h4>
<p>yep</p>



<a name="128672160"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672160" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672160">(Jun 26 2018 at 18:39)</a>:</h4>
<p>does that make sense?</p>



<a name="128672571"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672571" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672571">(Jun 26 2018 at 18:47)</a>:</h4>
<p>yes</p>



<a name="128672573"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672573" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672573">(Jun 26 2018 at 18:47)</a>:</h4>
<p>makes sense :)</p>



<a name="128672592"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672592" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672592">(Jun 26 2018 at 18:47)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> help me to remember, I think there's similar code to this already, right?</p>



<a name="128672639"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672639" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672639">(Jun 26 2018 at 18:48)</a>:</h4>
<p>I'm trying to remember</p>



<a name="128672642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672642">(Jun 26 2018 at 18:48)</a>:</h4>
<p>I do have some vague memory of doing something like this</p>



<a name="128672643"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672643" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672643">(Jun 26 2018 at 18:48)</a>:</h4>
<p>if you don't remember from the top of your head don't worry</p>



<a name="128672644"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672644" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672644">(Jun 26 2018 at 18:48)</a>:</h4>
<p>I can search</p>



<a name="128672646"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672646" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672646">(Jun 26 2018 at 18:48)</a>:</h4>
<p>I mean there is the <code>find_assignment</code> code</p>



<a name="128672650"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672650" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672650">(Jun 26 2018 at 18:48)</a>:</h4>
<p>but that doesn't really do a DFS or BFS</p>



<a name="128672651"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672651" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672651">(Jun 26 2018 at 18:48)</a>:</h4>
<p>but I feel like we maybe wrote some code to do that...?</p>



<a name="128672655"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672655" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672655">(Jun 26 2018 at 18:48)</a>:</h4>
<p>I think I've already done a BFS over mir</p>



<a name="128672657"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672657" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672657">(Jun 26 2018 at 18:48)</a>:</h4>
<p>right</p>



<a name="128672660"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672660" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672660">(Jun 26 2018 at 18:48)</a>:</h4>
<p>ah yes</p>



<a name="128672664"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672664" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672664">(Jun 26 2018 at 18:48)</a>:</h4>
<p>I think we were using it... hmm right</p>



<a name="128672666"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672666" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672666">(Jun 26 2018 at 18:49)</a>:</h4>
<p>actually it's related</p>



<a name="128672668"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672668" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672668">(Jun 26 2018 at 18:49)</a>:</h4>
<p>gimme a second</p>



<a name="128672678"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672678" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672678">(Jun 26 2018 at 18:49)</a>:</h4>
<p>yes, I have vague reminds of something related, hehe</p>



<a name="128672688"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672688" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672688">(Jun 26 2018 at 18:49)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/nll/explain_borrow/mod.rs#L128-L170" target="_blank" title="https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/nll/explain_borrow/mod.rs#L128-L170">https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/nll/explain_borrow/mod.rs#L128-L170</a></p>



<a name="128672694"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672694" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672694">(Jun 26 2018 at 18:49)</a>:</h4>
<p>man, I need to get memory pills :P</p>



<a name="128672695"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672695" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672695">(Jun 26 2018 at 18:49)</a>:</h4>
<p>this is ... kind of the same thing</p>



<a name="128672698"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672698" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672698">(Jun 26 2018 at 18:49)</a>:</h4>
<p>that is, there might be an opportunity to simplify the setup here</p>



<a name="128672702"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672702" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672702">(Jun 26 2018 at 18:50)</a>:</h4>
<p>that's what I was looking for</p>



<a name="128672742"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672742" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672742">(Jun 26 2018 at 18:50)</a>:</h4>
<p>I wrote that</p>



<a name="128672762"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672762" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672762">(Jun 26 2018 at 18:50)</a>:</h4>
<p>or you wrote it and I pasted it :P</p>



<a name="128672763"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672763" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672763">(Jun 26 2018 at 18:50)</a>:</h4>
<p>yep</p>



<a name="128672768"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672768" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672768">(Jun 26 2018 at 18:50)</a>:</h4>
<p>so the setup is a bit "indirect" right now</p>



<a name="128672775"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672775" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672775">(Jun 26 2018 at 18:50)</a>:</h4>
<p>we invoke <code>why_region_contains_point(R, P)</code> to find out why the region <code>R</code> includes the point <code>P</code></p>



<a name="128672798"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672798" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672798">(Jun 26 2018 at 18:51)</a>:</h4>
<p>and it returns something like <code>LiveVar(X, L)</code> saying:</p>



<a name="128672802"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672802" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672802">(Jun 26 2018 at 18:51)</a>:</h4>
<p>the region <code>R</code> includes the point <code>P</code> because the variable <code>X</code> is live</p>



<a name="128672814"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672814" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672814">(Jun 26 2018 at 18:51)</a>:</h4>
<p>(and, presumably, the type of <code>X</code> includes <code>R</code>)</p>



<a name="128672818"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672818" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672818">(Jun 26 2018 at 18:51)</a>:</h4>
<p>although it may not actually be <code>R</code></p>



<a name="128672829"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672829" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672829">(Jun 26 2018 at 18:51)</a>:</h4>
<p>it's more like "and the type of <code>X</code> includes some region <code>R1</code> where <code>R: R1</code>"</p>



<a name="128672877"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672877" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672877">(Jun 26 2018 at 18:52)</a>:</h4>
<p>so then we know that the variable <code>X</code> is <em>live</em> at this point <code>L</code> -- but that just means it may be used at some point in the future</p>



<a name="128672881"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672881" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672881">(Jun 26 2018 at 18:52)</a>:</h4>
<p>we don't actually know where it is used</p>



<a name="128672883"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672883" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672883">(Jun 26 2018 at 18:52)</a>:</h4>
<p>this is you are doing the BFS</p>



<a name="128672887"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672887" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672887">(Jun 26 2018 at 18:52)</a>:</h4>
<p>(in the code as it works today)</p>



<a name="128672895"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672895" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672895">(Jun 26 2018 at 18:52)</a>:</h4>
<p>so if we were to add another BFS in order to reproduce the current setup, that would be kind of silly</p>



<a name="128672902"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672902" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672902">(Jun 26 2018 at 18:53)</a>:</h4>
<p>we would basically be doing a BFS to find the use of <code>X</code></p>



<a name="128672909"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672909" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672909">(Jun 26 2018 at 18:53)</a>:</h4>
<p>er, to find the use of some variable that includes <code>R1</code></p>



<a name="128672913"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672913" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672913">(Jun 26 2018 at 18:53)</a>:</h4>
<p>and then doing <em>another</em> BFS later on to find that use again</p>



<a name="128672921"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128672921" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128672921">(Jun 26 2018 at 18:53)</a>:</h4>
<p>(with me so far .. ?)</p>



<a name="128674741"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128674741" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128674741">(Jun 26 2018 at 19:28)</a>:</h4>
<p>hey, back</p>



<a name="128674742"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128674742" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128674742">(Jun 26 2018 at 19:28)</a>:</h4>
<p>sorry, need to read</p>



<a name="128674746"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128674746" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128674746">(Jun 26 2018 at 19:28)</a>:</h4>
<p>well actually we have the meeting in 3 :)</p>



<a name="128693704"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128693704" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128693704">(Jun 27 2018 at 02:51)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> read what you wrote</p>



<a name="128693710"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128693710" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128693710">(Jun 27 2018 at 02:51)</a>:</h4>
<blockquote>
<p>so if we were to add another BFS in order to reproduce the current setup, that would be kind of silly</p>
</blockquote>
<p>I didn't understand since this point on</p>



<a name="128693754"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128693754" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128693754">(Jun 27 2018 at 02:52)</a>:</h4>
<p>unsure if you're saying that the strategy doesn't make sense or what</p>



<a name="128706331"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128706331" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128706331">(Jun 27 2018 at 09:19)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> I am saying that the strategy I described in the issue doesn't, I don't think, quite make sense -- we can probably do something simpler</p>



<a name="128706606"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128706606" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128706606">(Jun 27 2018 at 09:26)</a>:</h4>
<p>I'm writing some notes in the issue</p>



<a name="128706696"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128706696" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128706696">(Jun 27 2018 at 09:29)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/issues/51710#issuecomment-400606429" target="_blank" title="https://github.com/rust-lang/rust/issues/51710#issuecomment-400606429">notes are here</a></p>



<a name="128706698"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128706698" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128706698">(Jun 27 2018 at 09:29)</a>:</h4>
<p>I guess it's not so much that the strategy I described doesn't make <em>sense</em></p>



<a name="128706703"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128706703" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128706703">(Jun 27 2018 at 09:29)</a>:</h4>
<p>as that we can move the BFS from where it is and use it</p>



<a name="128730063"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128730063" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128730063">(Jun 27 2018 at 18:18)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> questions ...</p>



<a name="128730082"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128730082" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128730082">(Jun 27 2018 at 18:19)</a>:</h4>
<p>so I need to look from a location (elem in the code) look for points that may use the region (region_sub in the code)</p>



<a name="128730154"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128730154" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128730154">(Jun 27 2018 at 18:20)</a>:</h4>
<p>so for any local variable that's contained in region_sub</p>



<a name="128730338"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128730338" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128730338">(Jun 27 2018 at 18:24)</a>:</h4>
<p>if that's correct ... I'm looking for how to get all the local vars contained on a region</p>



<a name="128730389"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128730389" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128730389">(Jun 27 2018 at 18:24)</a>:</h4>
<p>I guess that's not what I need to do ... hmmm</p>



<a name="128730412"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128730412" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128730412">(Jun 27 2018 at 18:25)</a>:</h4>
<p>I guess I need to go statement by statement and see if there's a local used there that is contained in the region</p>



<a name="128730420"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128730420" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128730420">(Jun 27 2018 at 18:25)</a>:</h4>
<p>well</p>



<a name="128730423"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128730423" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128730423">(Jun 27 2018 at 18:25)</a>:</h4>
<p>we are already visiting locals, right?</p>



<a name="128730424"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128730424" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128730424">(Jun 27 2018 at 18:25)</a>:</h4>
<p>so that we can look for the one we wanted?</p>



<a name="128730466"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128730466" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128730466">(Jun 27 2018 at 18:26)</a>:</h4>
<p>we should be able to modify that check so that, instead of:</p>
<div class="codehilite"><pre><span></span>if local == self.local_I_am_looking_for { ... }
</pre></div>



<a name="128730469"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128730469" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128730469">(Jun 27 2018 at 18:26)</a>:</h4>
<p>it does something like</p>



<a name="128730471"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128730471" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128730471">(Jun 27 2018 at 18:26)</a>:</h4>
<p>yes, we are visiting locals</p>



<a name="128730480"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128730480" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128730480">(Jun 27 2018 at 18:26)</a>:</h4>
<div class="codehilite"><pre><span></span>if region.appears_in(type_of(local)) { ... }
</pre></div>



<a name="128730489"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128730489" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128730489">(Jun 27 2018 at 18:26)</a>:</h4>
<p>yeah</p>



<a name="128730491"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128730491" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128730491">(Jun 27 2018 at 18:26)</a>:</h4>
<p>something like that</p>



<a name="128730495"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128730495" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128730495">(Jun 27 2018 at 18:26)</a>:</h4>
<p>appears_in is pseudo code, right? or does that exist?</p>



<a name="128730497"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128730497" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128730497">(Jun 27 2018 at 18:26)</a>:</h4>
<p>:P</p>



<a name="128731161"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731161" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731161">(Jun 27 2018 at 18:38)</a>:</h4>
<p>another thing, how do I get the <code>MirBorrowckCtxt</code> from <code>RegionInferenceContext</code>?</p>



<a name="128731201"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731201" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731201">(Jun 27 2018 at 18:39)</a>:</h4>
<p>I need Mir and MirBorrowckCtxt</p>



<a name="128731254"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731254" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731254">(Jun 27 2018 at 18:40)</a>:</h4>
<p>you cannot get those things</p>



<a name="128731256"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731256" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731256">(Jun 27 2018 at 18:40)</a>:</h4>
<p>and you should not want them :)</p>



<a name="128731267"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731267" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731267">(Jun 27 2018 at 18:40)</a>:</h4>
<p>you may need to thread down some additional data though ...</p>



<a name="128731271"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731271" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731271">(Jun 27 2018 at 18:40)</a>:</h4>
<p>what do you need from the <code>MirBorrowckCtxt</code>?</p>



<a name="128731280"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731280" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731280">(Jun 27 2018 at 18:40)</a>:</h4>
<p>(the <code>Mir</code> you can thread down readily enough...)</p>



<a name="128731284"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731284" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731284">(Jun 27 2018 at 18:40)</a>:</h4>
<p>we may also want to move these methods somewhere else</p>



<a name="128731296"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731296" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731296">(Jun 27 2018 at 18:41)</a>:</h4>
<p>that is, the <code>explain_why_region_contains_point</code> might just return the <code>region_sub</code> value</p>



<a name="128731297"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731297" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731297">(Jun 27 2018 at 18:41)</a>:</h4>
<p>and we can move the walk outside of it</p>



<a name="128731303"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731303" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731303">(Jun 27 2018 at 18:41)</a>:</h4>
<div class="codehilite"><pre><span></span>        if !self.regioncx.region_contains_point(self.borrow.region, p) {
</pre></div>



<a name="128731372"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731372" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731372">(Jun 27 2018 at 18:42)</a>:</h4>
<blockquote>
<p>that is, the <code>explain_why_region_contains_point</code> might just return the <code>region_sub</code> value</p>
</blockquote>
<p>well if we do that is possible to get the stuff</p>



<a name="128731382"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731382" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731382">(Jun 27 2018 at 18:42)</a>:</h4>
<p>right</p>



<a name="128731383"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731383" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731383">(Jun 27 2018 at 18:42)</a>:</h4>
<p>and also I guess change the method name</p>



<a name="128731395"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731395" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731395">(Jun 27 2018 at 18:43)</a>:</h4>
<p>my point is that the <code>RegionInferenceContext</code> does not have access to the <code>MirBorowckCtxt</code> and should not</p>



<a name="128731399"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731399" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731399">(Jun 27 2018 at 18:43)</a>:</h4>
<p>that's just not how the layers are setup</p>



<a name="128731404"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731404" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731404">(Jun 27 2018 at 18:43)</a>:</h4>
<p>ya</p>



<a name="128731405"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731405" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731405">(Jun 27 2018 at 18:43)</a>:</h4>
<p>ok</p>



<a name="128731406"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731406" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731406">(Jun 27 2018 at 18:43)</a>:</h4>
<p>but wait</p>



<a name="128731407"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731407" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731407">(Jun 27 2018 at 18:43)</a>:</h4>
<p><code>if !self.regioncx.region_contains_point(self.borrow.region, p) {</code></p>



<a name="128731413"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731413" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731413">(Jun 27 2018 at 18:43)</a>:</h4>
<p>if that is the thing that you use from the <code>MirBorrowckCtxt</code></p>



<a name="128731415"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731415" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731415">(Jun 27 2018 at 18:43)</a>:</h4>
<p><code>self.regioncx</code> <em>is</em> the region inference context</p>



<a name="128731418"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731418" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731418">(Jun 27 2018 at 18:43)</a>:</h4>
<p>so that is just <code>self</code></p>



<a name="128731429"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731429" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731429">(Jun 27 2018 at 18:44)</a>:</h4>
<p>ahh, hehe, right :)</p>



<a name="128731683"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731683" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731683">(Jun 27 2018 at 18:48)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> so should I move the Find stuff or just leave it there, since I don't need MirBorrowckCtxt?</p>



<a name="128731797"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731797" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731797">(Jun 27 2018 at 18:50)</a>:</h4>
<p>to me it seems cleaner to move it</p>



<a name="128731801"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731801" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731801">(Jun 27 2018 at 18:50)</a>:</h4>
<p>then <code>explain_why_borrow_contains_point</code> can return the full explanation</p>



<a name="128731823"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731823" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731823">(Jun 27 2018 at 18:51)</a>:</h4>
<p>move it where?</p>



<a name="128731879"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731879" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731879">(Jun 27 2018 at 18:52)</a>:</h4>
<p>just in case we are on the same page, I've already moved the finder to region_infer/mod.rs</p>



<a name="128731888"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731888" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731888">(Jun 27 2018 at 18:52)</a>:</h4>
<p>are you saying that I should move it out from there?</p>



<a name="128731912"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731912" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731912">(Jun 27 2018 at 18:53)</a>:</h4>
<p>or from explain_borrow/mod.rs? &lt;- if this, it's already out there :)</p>



<a name="128731962"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731962" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731962">(Jun 27 2018 at 18:54)</a>:</h4>
<p>I guess fits more inside explain_borrow</p>



<a name="128731970"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731970" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731970">(Jun 27 2018 at 18:54)</a>:</h4>
<p>and maybe in a new file, right?</p>



<a name="128731972"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128731972" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128731972">(Jun 27 2018 at 18:54)</a>:</h4>
<p>explain_borrow/find_use.rs or something like this</p>



<a name="128732093"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128732093" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128732093">(Jun 27 2018 at 18:57)</a>:</h4>
<p>that would be my preference</p>



<a name="128732290"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128732290" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128732290">(Jun 27 2018 at 19:01)</a>:</h4>
<p>yeah, makes sense</p>



<a name="128734468"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128734468" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128734468">(Jun 27 2018 at 19:50)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> I was wondering about all the DefUses logic in finder</p>



<a name="128734478"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128734478" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128734478">(Jun 27 2018 at 19:50)</a>:</h4>
<p>yes</p>



<a name="128734480"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128734480" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128734480">(Jun 27 2018 at 19:50)</a>:</h4>
<p>why is all that needed if we are looking for uses?</p>



<a name="128734875"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128734875" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128734875">(Jun 27 2018 at 19:59)</a>:</h4>
<p>forget about what I've asked :P</p>



<a name="128734878"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128734878" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128734878">(Jun 27 2018 at 19:59)</a>:</h4>
<p>it's completely clear in the code</p>



<a name="128735782"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128735782" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128735782">(Jun 27 2018 at 20:16)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> how do you go from RegionVid to BorrowData?</p>



<a name="128735792"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128735792" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128735792">(Jun 27 2018 at 20:16)</a>:</h4>
<p>you cannot in general do that</p>



<a name="128735802"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128735802" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128735802">(Jun 27 2018 at 20:17)</a>:</h4>
<p>that is, only some regions have an associated <code>BorrowData</code></p>



<a name="128735803"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128735803" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128735803">(Jun 27 2018 at 20:17)</a>:</h4>
<p>why do you need to do that ?</p>



<a name="128736115"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128736115" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128736115">(Jun 27 2018 at 20:23)</a>:</h4>
<p>actually I probably don't</p>



<a name="128736116"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128736116" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128736116">(Jun 27 2018 at 20:23)</a>:</h4>
<p>unsure</p>



<a name="128736165"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128736165" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128736165">(Jun 27 2018 at 20:24)</a>:</h4>
<p>basically I have a RegionVid and a local</p>



<a name="128736171"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128736171" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128736171">(Jun 27 2018 at 20:24)</a>:</h4>
<p>and need to check if the region pointed by RegionVid contains that local</p>



<a name="128736556"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128736556" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128736556">(Jun 27 2018 at 20:31)</a>:</h4>
<p>So I think what you want to do</p>



<a name="128736560"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128736560" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128736560">(Jun 27 2018 at 20:31)</a>:</h4>
<p>is to find out if the type of that local</p>



<a name="128736561"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128736561" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128736561">(Jun 27 2018 at 20:31)</a>:</h4>
<p>includes the region</p>



<a name="128736563"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128736563" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128736563">(Jun 27 2018 at 20:31)</a>:</h4>
<p>for this, you need the mir</p>



<a name="128736576"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128736576" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128736576">(Jun 27 2018 at 20:31)</a>:</h4>
<p><code>mir.local_decls[local].ty</code> or something should give you the type of the MIR</p>



<a name="128736641"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128736641" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128736641">(Jun 27 2018 at 20:32)</a>:</h4>
<p>then you have to walk the regions somehow</p>



<a name="128736642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128736642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128736642">(Jun 27 2018 at 20:32)</a>:</h4>
<p>I'm debating which of the various helpers is the best fit :)</p>



<a name="128737139"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128737139" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128737139">(Jun 27 2018 at 20:42)</a>:</h4>
<p><code>for_each_free_region</code> is an easy one but it has no way to stop once you found something, nor to return a value</p>



<a name="128737146"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128737146" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128737146">(Jun 27 2018 at 20:42)</a>:</h4>
<p>you'd have to set some flag to true</p>



<a name="128737160"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128737160" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128737160">(Jun 27 2018 at 20:42)</a>:</h4>
<p>maybe we want a <code>visit_each_free_regon</code></p>



<a name="128737193"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128737193" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128737193">(Jun 27 2018 at 20:43)</a>:</h4>
<p>still, i'd do something like</p>
<div class="codehilite"><pre><span></span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">found_it</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">false</span><span class="p">;</span><span class="w"></span>
<span class="n">tcx</span><span class="p">.</span><span class="n">for_each_free_region</span><span class="p">(</span><span class="n">ty</span><span class="p">,</span><span class="w"> </span><span class="o">|</span><span class="n">r</span><span class="o">|</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">r</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">region_I_want</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">found_it</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"> </span><span class="p">})</span><span class="w"></span>
</pre></div>


<p>for now. It's the easiest way to get started.</p>



<a name="128737235"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128737235" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128737235">(Jun 27 2018 at 20:44)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> <span class="emoji emoji-261d" title="point up">:point_up:</span> make sense?</p>



<a name="128739552"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128739552" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128739552">(Jun 27 2018 at 21:28)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> makes perfect sense</p>



<a name="128739554"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128739554" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128739554">(Jun 27 2018 at 21:28)</a>:</h4>
<p>can't continue with this now</p>



<a name="128739569"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128739569" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128739569">(Jun 27 2018 at 21:28)</a>:</h4>
<p>but this is probably very close to be finished</p>



<a name="128739573"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128739573" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128739573">(Jun 27 2018 at 21:29)</a>:</h4>
<p>just doing what you've said and it's done</p>



<a name="128743013"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128743013" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128743013">(Jun 27 2018 at 22:56)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> I have a couple of minutes ... where can I get tcx from?</p>



<a name="128743016"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128743016" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128743016">(Jun 27 2018 at 22:56)</a>:</h4>
<p>I guess I can pass it down</p>



<a name="128743019"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128743019" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128743019">(Jun 27 2018 at 22:56)</a>:</h4>
<p>on the finder I have the mir</p>



<a name="128743081"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128743081" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128743081">(Jun 27 2018 at 22:58)</a>:</h4>
<p>yeah, you can get it from <code>self.infcx.tcx</code> in the <code>MirBorrowckCtxt</code> I think</p>



<a name="128743094"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128743094" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128743094">(Jun 27 2018 at 22:59)</a>:</h4>
<p>yep</p>



<a name="128743095"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128743095" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128743095">(Jun 27 2018 at 22:59)</a>:</h4>
<p>ok</p>



<a name="128743099"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128743099" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128743099">(Jun 27 2018 at 22:59)</a>:</h4>
<p>wasn't sure if was possible to get it from mir</p>



<a name="128743107"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128743107" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128743107">(Jun 27 2018 at 22:59)</a>:</h4>
<p>ahh tcx is type context?</p>



<a name="128743111"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128743111" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128743111">(Jun 27 2018 at 22:59)</a>:</h4>
<p>if it's that doesn't make sense to have it on mir :)</p>



<a name="128746925"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128746925" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128746925">(Jun 28 2018 at 00:32)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> wonder how to proper set up TyCtxt lifetimes</p>



<a name="128746927"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128746927" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128746927">(Jun 28 2018 at 00:32)</a>:</h4>
<p><code>pub struct TyCtxt&lt;'a, 'gcx: 'a+'tcx, 'tcx: 'a&gt; {</code></p>



<a name="128746931"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128746931" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128746931">(Jun 28 2018 at 00:32)</a>:</h4>
<p>mainly the first lifetime param</p>



<a name="128746932"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128746932" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128746932">(Jun 28 2018 at 00:32)</a>:</h4>
<p>I guess that's 'cx</p>



<a name="128747055"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128747055" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128747055">(Jun 28 2018 at 00:36)</a>:</h4>
<div class="codehilite"><pre><span></span>error[E0491]: in type `&amp;&#39;gcx rustc::mir::Mir&lt;&#39;tcx&gt;`, reference has a longer lifetime than the data it references
  --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:43:5
   |
43 |     mir: &amp;&#39;gcx Mir&lt;&#39;tcx&gt;,
   |     ^^^^^^^^^^^^^^^^^^^^
   |
note: the pointer is valid for the lifetime &#39;gcx as defined on the struct at 42:1
  --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:42:1
   |
42 | struct UseFinder&lt;&#39;cx, &#39;gcx, &#39;tcx&gt; {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: but the referenced data is only valid for the lifetime &#39;tcx as defined on the struct at 42:1
  --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:42:1
   |
42 | struct UseFinder&lt;&#39;cx, &#39;gcx, &#39;tcx&gt; {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0478]: lifetime bound not satisfied
  --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:45:5
   |
45 |     tcx: TyCtxt&lt;&#39;cx, &#39;gcx, &#39;tcx&gt;,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
note: lifetime parameter instantiated with the lifetime &#39;gcx as defined on the struct at 42:1
  --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:42:1
   |
42 | struct UseFinder&lt;&#39;cx, &#39;gcx, &#39;tcx&gt; {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: but lifetime parameter must outlive the lifetime &#39;cx as defined on the struct at 42:1
  --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:42:1
   |
42 | struct UseFinder&lt;&#39;cx, &#39;gcx, &#39;tcx&gt; {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0478]: lifetime bound not satisfied
  --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:45:5
   |
45 |     tcx: TyCtxt&lt;&#39;cx, &#39;gcx, &#39;tcx&gt;,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
note: lifetime parameter instantiated with the lifetime &#39;tcx as defined on the struct at 42:1
  --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:42:1
   |
42 | struct UseFinder&lt;&#39;cx, &#39;gcx, &#39;tcx&gt; {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: but lifetime parameter must outlive the lifetime &#39;cx as defined on the struct at 42:1
  --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:42:1
   |
42 | struct UseFinder&lt;&#39;cx, &#39;gcx, &#39;tcx&gt; {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0478]: lifetime bound not satisfied
  --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:45:5
   |
45 |     tcx: TyCtxt&lt;&#39;cx, &#39;gcx, &#39;tcx&gt;,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
note: lifetime parameter instantiated with the lifetime &#39;gcx as defined on the struct at 42:1
  --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:42:1
   |
42 | struct UseFinder&lt;&#39;cx, &#39;gcx, &#39;tcx&gt; {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: but lifetime parameter must outlive the lifetime &#39;tcx as defined on the struct at 42:1
  --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:42:1
   |
42 | struct UseFinder&lt;&#39;cx, &#39;gcx, &#39;tcx&gt; {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0491]: in type `&amp;&#39;gcx rustc::mir::Mir&lt;&#39;tcx&gt;`, reference has a longer lifetime than the data it references
   --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:111:5
    |
111 |     mir: &amp;&#39;gcx Mir&lt;&#39;tcx&gt;,
    |     ^^^^^^^^^^^^^^^^^^^^
    |
note: the pointer is valid for the lifetime &#39;gcx as defined on the struct at 110:1
   --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:110:1
    |
110 | struct DefUseVisitor&lt;&#39;cx, &#39;gcx, &#39;tcx&gt; {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: but the referenced data is only valid for the lifetime &#39;tcx as defined on the struct at 110:1
   --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:110:1
    |
110 | struct DefUseVisitor&lt;&#39;cx, &#39;gcx, &#39;tcx&gt; {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0478]: lifetime bound not satisfied
   --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:113:5
    |
113 |     tcx: TyCtxt&lt;&#39;cx, &#39;gcx, &#39;tcx&gt;,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
note: lifetime parameter instantiated with the lifetime &#39;gcx as defined on the struct at 110:1
   --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:110:1
    |
110 | struct DefUseVisitor&lt;&#39;cx, &#39;gcx, &#39;tcx&gt; {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: but lifetime parameter must outlive the lifetime &#39;cx as defined on the struct at 110:1
   --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:110:1
    |
110 | struct DefUseVisitor&lt;&#39;cx, &#39;gcx, &#39;tcx&gt; {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0478]: lifetime bound not satisfied
   --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:113:5
    |
113 |     tcx: TyCtxt&lt;&#39;cx, &#39;gcx, &#39;tcx&gt;,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
note: lifetime parameter instantiated with the lifetime &#39;tcx as defined on the struct at 110:1
   --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:110:1
    |
110 | struct DefUseVisitor&lt;&#39;cx, &#39;gcx, &#39;tcx&gt; {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: but lifetime parameter must outlive the lifetime &#39;cx as defined on the struct at 110:1
   --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:110:1
    |
110 | struct DefUseVisitor&lt;&#39;cx, &#39;gcx, &#39;tcx&gt; {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0478]: lifetime bound not satisfied
   --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:113:5
    |
113 |     tcx: TyCtxt&lt;&#39;cx, &#39;gcx, &#39;tcx&gt;,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
note: lifetime parameter instantiated with the lifetime &#39;gcx as defined on the struct at 110:1
   --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:110:1
    |
110 | struct DefUseVisitor&lt;&#39;cx, &#39;gcx, &#39;tcx&gt; {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: but lifetime parameter must outlive the lifetime &#39;tcx as defined on the struct at 110:1
   --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:110:1
    |
110 | struct DefUseVisitor&lt;&#39;cx, &#39;gcx, &#39;tcx&gt; {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 8 previous errors
</pre></div>



<a name="128747069"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128747069" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128747069">(Jun 28 2018 at 00:37)</a>:</h4>
<p>will check this tomorrow</p>



<a name="128747419"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128747419" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128747419">(Jun 28 2018 at 00:47)</a>:</h4>
<p>you almost certainly don't want any data with lifetime <code>'gcx</code></p>



<a name="128747460"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128747460" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128747460">(Jun 28 2018 at 00:48)</a>:</h4>
<p><code>&amp;'tcx Mir&lt;'tcx&gt;</code> or <code>&amp;'cx Mir&lt;'tcx&gt;</code> ...</p>



<a name="128747462"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128747462" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128747462">(Jun 28 2018 at 00:48)</a>:</h4>
<p>can you send me some link to the code in question?</p>



<a name="128747723"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128747723" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128747723">(Jun 28 2018 at 00:58)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> if you're writing a visitor needing the MirBorrowckCtx: <a href="https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/used_muts.rs#L33" target="_blank" title="https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/used_muts.rs#L33">https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/used_muts.rs#L33</a> could be an example (I think :)</p>



<a name="128751516"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128751516" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128751516">(Jun 28 2018 at 03:02)</a>:</h4>
<p>was missing this stuff ...</p>



<a name="128751626"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128751626" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128751626">(Jun 28 2018 at 03:06)</a>:</h4>
<p>for tomorrow :)</p>



<a name="128751680"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128751680" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128751680">(Jun 28 2018 at 03:09)</a>:</h4>
<div class="codehilite"><pre><span></span>error[E0277]: the trait bound `rustc::ty::TyS&lt;&#39;_&gt;: rustc::ty::TypeFoldable&lt;&#39;_&gt;` is not satisfied
   --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:124:18
    |
124 |         self.tcx.for_each_free_region(local_ty, |r| if r == self.region_vid { found_it = true; });
    |                  ^^^^^^^^^^^^^^^^^^^^ the trait `rustc::ty::TypeFoldable&lt;&#39;_&gt;` is not implemented for `rustc::ty::TyS&lt;&#39;_&gt;`
    |
    = help: the following implementations were found:
              &lt;&amp;&#39;tcx rustc::ty::TyS&lt;&#39;tcx&gt; as rustc::ty::TypeFoldable&lt;&#39;tcx&gt;&gt;

error[E0277]: can&#39;t compare `&amp;rustc::ty::RegionKind` with `rustc::ty::RegionVid`
   --&gt; librustc_mir/borrow_check/nll/explain_borrow/find_use.rs:124:58
    |
124 |         self.tcx.for_each_free_region(local_ty, |r| if r == self.region_vid { found_it = true; });
    |                                                          ^^ no implementation for `&amp;rustc::ty::RegionKind == rustc::ty::RegionVid`
    |
    = help: the trait `std::cmp::PartialEq&lt;rustc::ty::RegionVid&gt;` is not implemented for `&amp;rustc::ty::RegionKind`
</pre></div>



<a name="128751734"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128751734" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128751734">(Jun 28 2018 at 03:10)</a>:</h4>
<div class="codehilite"><pre><span></span>diff --git a/src/librustc_mir/borrow_check/nll/explain_borrow/find_use.rs b/src/librustc_mir/borrow_check/nll/explain_borrow/find_use.rs
index 06656eb8b1..c0494ec990 100644
--- a/src/librustc_mir/borrow_check/nll/explain_borrow/find_use.rs
+++ b/src/librustc_mir/borrow_check/nll/explain_borrow/find_use.rs
@@ -17,7 +17,7 @@ use rustc::ty::{RegionVid, TyCtxt};
 use rustc_data_structures::fx::FxHashSet;
 use util::liveness::{self, DefUse, LivenessMode};

-crate fn find&lt;&#39;cx, &#39;gcx, &#39;tcx&gt;(
+crate fn find&lt;&#39;cx, &#39;gcx: &#39;tcx, &#39;tcx: &#39;cx&gt;(
     mir: &amp;&#39;cx Mir&lt;&#39;tcx&gt;,
     region_cx: Rc&lt;RegionInferenceContext&lt;&#39;tcx&gt;&gt;,
     tcx: TyCtxt&lt;&#39;cx, &#39;gcx, &#39;tcx&gt;,
@@ -39,7 +39,7 @@ crate fn find&lt;&#39;cx, &#39;gcx, &#39;tcx&gt;(
     uf.find()
 }

-struct UseFinder&lt;&#39;cx, &#39;gcx, &#39;tcx&gt; {
+struct UseFinder&lt;&#39;cx, &#39;gcx: &#39;tcx, &#39;tcx: &#39;cx&gt; {
     mir: &amp;&#39;cx Mir&lt;&#39;tcx&gt;,
     region_cx: Rc&lt;RegionInferenceContext&lt;&#39;tcx&gt;&gt;,
     tcx: TyCtxt&lt;&#39;cx, &#39;gcx, &#39;tcx&gt;,
@@ -107,7 +107,7 @@ impl&lt;&#39;cx, &#39;gcx, &#39;tcx&gt; UseFinder&lt;&#39;cx, &#39;gcx, &#39;tcx&gt; {
     }
 }

-struct DefUseVisitor&lt;&#39;cx, &#39;gcx, &#39;tcx&gt; {
+struct DefUseVisitor&lt;&#39;cx, &#39;gcx: &#39;tcx, &#39;tcx: &#39;cx&gt; {
     mir: &amp;&#39;cx Mir&lt;&#39;tcx&gt;,
     region_cx: Rc&lt;RegionInferenceContext&lt;&#39;tcx&gt;&gt;,
     tcx: TyCtxt&lt;&#39;cx, &#39;gcx, &#39;tcx&gt;,
</pre></div>



<a name="128751912"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128751912" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128751912">(Jun 28 2018 at 03:16)</a>:</h4>
<p>will leave this 2 errors ...</p>



<a name="128764586"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128764586" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128764586">(Jun 28 2018 at 10:12)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> the signature of <code>for_each_free_region</code> is:</p>
<div class="codehilite"><pre><span></span><span class="w">    </span><span class="k">pub</span><span class="w"> </span><span class="k">fn</span> <span class="nf">for_each_free_region</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span><span class="n">F</span><span class="o">&gt;</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="w"></span>
<span class="w">                                     </span><span class="n">value</span>: <span class="kp">&amp;</span><span class="nc">T</span><span class="p">,</span><span class="w"></span>
<span class="w">                                     </span><span class="n">callback</span>: <span class="nc">F</span><span class="p">)</span><span class="w"></span>
<span class="w">        </span><span class="k">where</span><span class="w"> </span><span class="n">F</span>: <span class="nb">FnMut</span><span class="p">(</span><span class="n">ty</span>::<span class="n">Region</span><span class="o">&lt;</span><span class="na">&#39;tcx</span><span class="o">&gt;</span><span class="p">),</span><span class="w"></span>
<span class="w">              </span><span class="n">T</span>: <span class="nc">TypeFoldable</span><span class="o">&lt;</span><span class="na">&#39;tcx</span><span class="o">&gt;</span><span class="p">,</span><span class="w"></span>
</pre></div>


<p>Note that it takes a <code>&amp;T</code> for <code>value</code> -- that means you need to invoke it with <code>&amp;local_ty</code> as argument, not <code>local_ty</code>:</p>
<div class="codehilite"><pre><span></span><span class="bp">self</span><span class="p">.</span><span class="n">tcx</span><span class="p">.</span><span class="n">for_each_free_region</span><span class="p">(</span><span class="o">&amp;</span><span class="n">local_ty</span><span class="p">,</span><span class="w"> </span><span class="o">|</span><span class="n">r</span><span class="o">|</span><span class="w"> </span><span class="p">...)</span><span class="w"></span>
</pre></div>


<p>That should fix the first error.</p>



<a name="128764655"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128764655" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128764655">(Jun 28 2018 at 10:15)</a>:</h4>
<p>As for the second error, you are searching for a <code>RegionVid</code> -- a region variable id, which is basically one specific kind of region -- but the variable <code>r</code> is a <code>Region&lt;'tcx&gt;</code>, which is the more general type. <strong>In fact</strong>, since this region is coming from the MIR, and we've rewritten the MIR to only use "region variables" (which have a <code>RegionVid</code>), we can convert the <code>Region</code> to a <code>RegionVid</code> by invoking <code>t.to_region_vid()</code>. The <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/borrow_check/nll/trait.ToRegionVid.html#tymethod.to_region_vid" target="_blank" title="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/borrow_check/nll/trait.ToRegionVid.html#tymethod.to_region_vid"><code>to_region_vid()</code> method</a> is defined on <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/borrow_check/nll/trait.ToRegionVid.html" target="_blank" title="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/borrow_check/nll/trait.ToRegionVid.html">the helper trait <code>ToRegionVid</code></a>, which may need to be imported.</p>



<a name="128767933"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128767933" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128767933">(Jun 28 2018 at 11:51)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> ya, that makes sense</p>



<a name="128767983"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128767983" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128767983">(Jun 28 2018 at 11:52)</a>:</h4>
<p>yesterday that was the last thing I did and didn't check the errors</p>



<a name="128767988"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128767988" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128767988">(Jun 28 2018 at 11:52)</a>:</h4>
<p>just share the thing before stopping using the computer</p>



<a name="128767989"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128767989" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128767989">(Jun 28 2018 at 11:52)</a>:</h4>
<p>thanks for the tips anyway</p>



<a name="128767991"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128767991" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128767991">(Jun 28 2018 at 11:52)</a>:</h4>
<p>the last missing thing is to return the Cause</p>



<a name="128768141"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128768141" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128768141">(Jun 28 2018 at 11:57)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> this is what I have for now, for you to check <a href="https://github.com/rust-lang/rust/compare/master...spastorino:make-causal-tracking-lazy" target="_blank" title="https://github.com/rust-lang/rust/compare/master...spastorino:make-causal-tracking-lazy">https://github.com/rust-lang/rust/compare/master...spastorino:make-causal-tracking-lazy</a></p>



<a name="128768198"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128768198" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128768198">(Jun 28 2018 at 11:59)</a>:</h4>
<p>I need to figure out how to return Causal from here <a href="https://github.com/rust-lang/rust/compare/master...spastorino:make-causal-tracking-lazy#diff-fa4e5f66c948394f09355b88af038480R71" target="_blank" title="https://github.com/rust-lang/rust/compare/master...spastorino:make-causal-tracking-lazy#diff-fa4e5f66c948394f09355b88af038480R71">https://github.com/rust-lang/rust/compare/master...spastorino:make-causal-tracking-lazy#diff-fa4e5f66c948394f09355b88af038480R71</a></p>



<a name="128768216"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128768216" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128768216">(Jun 28 2018 at 11:59)</a>:</h4>
<p>current code I think it's missing some stuff to be able to properly return Causal info</p>



<a name="128768220"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128768220" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128768220">(Jun 28 2018 at 11:59)</a>:</h4>
<p>need to think a bit about it</p>



<a name="128768222"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128768222" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128768222">(Jun 28 2018 at 11:59)</a>:</h4>
<p>will be around later</p>



<a name="128780339"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780339" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780339">(Jun 28 2018 at 16:25)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> can you help me a bit to figure out how to build Cause?</p>



<a name="128780391"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780391" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780391">(Jun 28 2018 at 16:26)</a>:</h4>
<div class="codehilite"><pre><span></span>pub(crate) enum Cause {
    /// point inserted because Local was live at the given Location
    LiveVar(Local, Location),

    /// point inserted because Local was dropped at the given Location
    DropVar(Local, Location),

    /// point inserted because the type was live at the given Location,
    /// but not as part of some local variable
    LiveOther(Location),

    /// part of the initial set of values for a universally quantified region
    #[allow(dead_code)]
    UniversalRegion(RegionVid),
}
</pre></div>



<a name="128780397"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780397" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780397">(Jun 28 2018 at 16:26)</a>:</h4>
<p>in</p>



<a name="128780402"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780402" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780402">(Jun 28 2018 at 16:26)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/compare/master...spastorino:make-causal-tracking-lazy#diff-fa4e5f66c948394f09355b88af038480R71" target="_blank" title="https://github.com/rust-lang/rust/compare/master...spastorino:make-causal-tracking-lazy#diff-fa4e5f66c948394f09355b88af038480R71">https://github.com/rust-lang/rust/compare/master...spastorino:make-causal-tracking-lazy#diff-fa4e5f66c948394f09355b88af038480R71</a></p>



<a name="128780484"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780484" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780484">(Jun 28 2018 at 16:28)</a>:</h4>
<p>I need to get what's the use exactly</p>



<a name="128780485"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780485" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780485">(Jun 28 2018 at 16:28)</a>:</h4>
<p>drop or live</p>



<a name="128780490"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780490" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780490">(Jun 28 2018 at 16:28)</a>:</h4>
<p>what's the local associated, I can just return from the visit</p>



<a name="128780598"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780598" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780598">(Jun 28 2018 at 16:30)</a>:</h4>
<p>hmm</p>



<a name="128780652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780652">(Jun 28 2018 at 16:32)</a>:</h4>
<p>basically what I need is a logic to know if the Cause is because of LiveVar, DropVar, LiveOther or UniversalRegion</p>



<a name="128780658"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780658" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780658">(Jun 28 2018 at 16:32)</a>:</h4>
<p>the rest I think I have all the data</p>



<a name="128780664"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780664" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780664">(Jun 28 2018 at 16:32)</a>:</h4>
<p>I think you can gt it from the <code>PlaceContext</code></p>



<a name="128780671"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780671" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780671">(Jun 28 2018 at 16:33)</a>:</h4>
<p><a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc/mir/visit/enum.PlaceContext.html" target="_blank" title="https://doc.rust-lang.org/nightly/nightly-rustc/rustc/mir/visit/enum.PlaceContext.html">https://doc.rust-lang.org/nightly/nightly-rustc/rustc/mir/visit/enum.PlaceContext.html</a></p>



<a name="128780674"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780674" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780674">(Jun 28 2018 at 16:33)</a>:</h4>
<p>e.g, it has a <code>Drop</code> variant</p>



<a name="128780724"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780724" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780724">(Jun 28 2018 at 16:34)</a>:</h4>
<p>you mean that I can get if it's Drop or not with that?</p>



<a name="128780727"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780727" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780727">(Jun 28 2018 at 16:34)</a>:</h4>
<p>and what about the rest?</p>



<a name="128780741"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780741" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780741">(Jun 28 2018 at 16:35)</a>:</h4>
<p>what is the rest?</p>



<a name="128780746"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780746" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780746">(Jun 28 2018 at 16:35)</a>:</h4>
<p>LiveOther and UniversalRegion</p>



<a name="128780747"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780747" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780747">(Jun 28 2018 at 16:35)</a>:</h4>
<p>don't remember what's UniversalRegion</p>



<a name="128780790"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780790" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780790">(Jun 28 2018 at 16:36)</a>:</h4>
<p>but I'm not doing anything for LiveOther because I'm checking the locals</p>



<a name="128780793"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780793" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780793">(Jun 28 2018 at 16:36)</a>:</h4>
<p>ok so</p>



<a name="128780795"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780795" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780795">(Jun 28 2018 at 16:36)</a>:</h4>
<p>my mistake maybe</p>



<a name="128780797"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780797" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780797">(Jun 28 2018 at 16:36)</a>:</h4>
<p>you don't have a context here</p>



<a name="128780802"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780802" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780802">(Jun 28 2018 at 16:36)</a>:</h4>
<p>but regarding those other variants, you will never produce those</p>



<a name="128780807"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780807" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780807">(Jun 28 2018 at 16:36)</a>:</h4>
<p>you will I think <em>only</em> produce <code>LiveVar</code>, <code>DropVar</code>, or "other"</p>



<a name="128780809"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780809" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780809">(Jun 28 2018 at 16:36)</a>:</h4>
<p>we can probably remove them</p>



<a name="128780814"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780814" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780814">(Jun 28 2018 at 16:37)</a>:</h4>
<p>iirc we don't really use the other things for much anyway</p>



<a name="128780821"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780821" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780821">(Jun 28 2018 at 16:37)</a>:</h4>
<p>hmmm</p>



<a name="128780824"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780824" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780824">(Jun 28 2018 at 16:37)</a>:</h4>
<p>in terms of whether to produce <code>LiveVar</code> or <code>DropVar</code>— you can look at the data at the statement index</p>



<a name="128780832"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780832" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780832">(Jun 28 2018 at 16:37)</a>:</h4>
<p>but this is going to change behavior</p>



<a name="128780836"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780836" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780836">(Jun 28 2018 at 16:37)</a>:</h4>
<p>(a) I don't think it will</p>



<a name="128780837"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780837" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780837">(Jun 28 2018 at 16:37)</a>:</h4>
<p>let me paste the previous code ...</p>



<a name="128780838"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780838" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780838">(Jun 28 2018 at 16:37)</a>:</h4>
<p>(b) who cares</p>



<a name="128780840"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780840" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780840">(Jun 28 2018 at 16:37)</a>:</h4>
<p>:)</p>



<a name="128780842"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780842" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780842">(Jun 28 2018 at 16:37)</a>:</h4>
<p>well, let's check</p>



<a name="128780846"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780846" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780846">(Jun 28 2018 at 16:37)</a>:</h4>
<p>but the <code>UniversalRegion</code> variant is already dead-code</p>



<a name="128780888"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780888" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780888">(Jun 28 2018 at 16:38)</a>:</h4>
<p>as you can see from the <code>#[allow]</code>, right?</p>



<a name="128780890"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780890" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780890">(Jun 28 2018 at 16:38)</a>:</h4>
<p>(or did you add that?)</p>



<a name="128780914"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780914" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780914">(Jun 28 2018 at 16:38)</a>:</h4>
<p>but in any case I don't see any code that is handling <code>LiveOther</code> in a useful way</p>



<a name="128780924"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780924" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780924">(Jun 28 2018 at 16:39)</a>:</h4>
<p>I've added that</p>



<a name="128780925"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780925" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780925">(Jun 28 2018 at 16:39)</a>:</h4>
<p>when I've removed causal</p>



<a name="128780927"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780927" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780927">(Jun 28 2018 at 16:39)</a>:</h4>
<p>check this <a href="https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/nll/explain_borrow/mod.rs#L47-L109" target="_blank" title="https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/nll/explain_borrow/mod.rs#L47-L109">https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/nll/explain_borrow/mod.rs#L47-L109</a></p>



<a name="128780932"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780932" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780932">(Jun 28 2018 at 16:39)</a>:</h4>
<p>I was trying to mimic that</p>



<a name="128780989"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780989" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780989">(Jun 28 2018 at 16:40)</a>:</h4>
<p>well LiveOther doesn't show up there</p>



<a name="128780995"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128780995" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128780995">(Jun 28 2018 at 16:40)</a>:</h4>
<p>right so— I think that the <code>UniversalRegion</code> stuff is dead code in that match</p>



<a name="128781004"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128781004" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128781004">(Jun 28 2018 at 16:40)</a>:</h4>
<p>but in any case it's not a very good output</p>



<a name="128781006"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128781006" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128781006">(Jun 28 2018 at 16:40)</a>:</h4>
<p>I guess we'll see if that note disappears and figure out what to do</p>



<a name="128781010"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128781010" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128781010">(Jun 28 2018 at 16:40)</a>:</h4>
<p>the thing is</p>



<a name="128781011"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128781011" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128781011">(Jun 28 2018 at 16:40)</a>:</h4>
<p>ok</p>



<a name="128781012"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128781012" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128781012">(Jun 28 2018 at 16:40)</a>:</h4>
<p>seems good :)</p>



<a name="128781021"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128781021" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128781021">(Jun 28 2018 at 16:41)</a>:</h4>
<p>well, ok, it may be dead code :)</p>



<a name="128781022"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128781022" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128781022">(Jun 28 2018 at 16:41)</a>:</h4>
<p>but let's worry about it later in any case</p>



<a name="128781083"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128781083" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128781083">(Jun 28 2018 at 16:42)</a>:</h4>
<p>I think if we <strong>do</strong> find an actual use or drop</p>



<a name="128781085"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128781085" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128781085">(Jun 28 2018 at 16:42)</a>:</h4>
<p>that is <strong>always</strong> a better thing to print</p>



<a name="128781090"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128781090" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128781090">(Jun 28 2018 at 16:42)</a>:</h4>
<p>if we fail to find one, I think we can probably look at the region for which we were searching</p>



<a name="128781091"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128781091" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128781091">(Jun 28 2018 at 16:42)</a>:</h4>
<p>and decide whether to emit that other note</p>



<a name="128781092"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128781092" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128781092">(Jun 28 2018 at 16:42)</a>:</h4>
<p>but it'd be good to have some actual examples</p>



<a name="128787321"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128787321" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128787321">(Jun 28 2018 at 18:42)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> why are we doing this <a href="https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/nll/explain_borrow/mod.rs#L42" target="_blank" title="https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/nll/explain_borrow/mod.rs#L42">https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/nll/explain_borrow/mod.rs#L42</a> ?</p>



<a name="128787328"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128787328" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128787328">(Jun 28 2018 at 18:42)</a>:</h4>
<p>what specifically?</p>



<a name="128787329"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128787329" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128787329">(Jun 28 2018 at 18:42)</a>:</h4>
<p>the <code>&amp;&amp;</code>?</p>



<a name="128787332"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128787332" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128787332">(Jun 28 2018 at 18:42)</a>:</h4>
<p>yes</p>



<a name="128787335"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128787335" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128787335">(Jun 28 2018 at 18:42)</a>:</h4>
<p>typo, I imagine</p>



<a name="128787337"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128787337" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128787337">(Jun 28 2018 at 18:42)</a>:</h4>
<p>that's an <code>std::rc::Rc&lt;borrow_check::nll::region_infer::RegionInferenceContext&lt;'_&gt;&gt;</code></p>



<a name="128787348"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128787348" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128787348">(Jun 28 2018 at 18:43)</a>:</h4>
<p>just one would suffice I guess</p>



<a name="128787354"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128787354" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128787354">(Jun 28 2018 at 18:43)</a>:</h4>
<p>this just creates a double indirection</p>



<a name="128787360"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128787360" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128787360">(Jun 28 2018 at 18:43)</a>:</h4>
<p>the coercions probably make it go away</p>



<a name="128787370"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128787370" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128787370">(Jun 28 2018 at 18:43)</a>:</h4>
<p>why that and not clone() over the Rc?</p>



<a name="128787376"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128787376" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128787376">(Jun 28 2018 at 18:43)</a>:</h4>
<p>why clone when you don't have to, I guess</p>



<a name="128787420"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128787420" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128787420">(Jun 28 2018 at 18:44)</a>:</h4>
<p>isn't clone() over Rc cheap?</p>



<a name="128787421"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128787421" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128787421">(Jun 28 2018 at 18:44)</a>:</h4>
<p>I think it's only that way to avoid typing <code>self.</code></p>



<a name="128787423"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128787423" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128787423">(Jun 28 2018 at 18:44)</a>:</h4>
<p>yes, but not as cheap as not cloning <span class="emoji emoji-1f61b" title="stuck out tongue">:stuck_out_tongue:</span></p>



<a name="128787425"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128787425" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128787425">(Jun 28 2018 at 18:44)</a>:</h4>
<p>ok</p>



<a name="128787427"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128787427" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128787427">(Jun 28 2018 at 18:44)</a>:</h4>
<p>ya</p>



<a name="128787428"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128787428" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128787428">(Jun 28 2018 at 18:44)</a>:</h4>
<p>makes sense</p>



<a name="128787753"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128787753" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128787753">(Jun 28 2018 at 18:50)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> fyi, this thing is now compiling</p>



<a name="128787760"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128787760" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128787760">(Jun 28 2018 at 18:50)</a>:</h4>
<p>need to run tests and see what's going on</p>



<a name="128789118"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789118" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789118">(Jun 28 2018 at 19:17)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span>, yeah there's wrong stuff :)</p>



<a name="128789119"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789119" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789119">(Jun 28 2018 at 19:17)</a>:</h4>
<p>let me share with you all the code</p>



<a name="128789164"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789164" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789164">(Jun 28 2018 at 19:18)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> <a href="https://github.com/rust-lang/rust/compare/master...spastorino:make-causal-tracking-lazy" target="_blank" title="https://github.com/rust-lang/rust/compare/master...spastorino:make-causal-tracking-lazy">https://github.com/rust-lang/rust/compare/master...spastorino:make-causal-tracking-lazy</a></p>



<a name="128789168"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789168" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789168">(Jun 28 2018 at 19:18)</a>:</h4>
<p>we are missing all those errors</p>



<a name="128789182"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789182" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789182">(Jun 28 2018 at 19:18)</a>:</h4>
<p>don't we need a mixture of those solutions?</p>



<a name="128789191"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789191" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789191">(Jun 28 2018 at 19:19)</a>:</h4>
<p>I mean, push down the Cause always but on uses</p>



<a name="128789194"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789194" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789194">(Jun 28 2018 at 19:19)</a>:</h4>
<p>and on uses just do what we are doing in this issue</p>



<a name="128789207"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789207" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789207">(Jun 28 2018 at 19:19)</a>:</h4>
<p>the uses part is what we are trying to optimize</p>



<a name="128789356"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789356" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789356">(Jun 28 2018 at 19:22)</a>:</h4>
<p>which errors are missing?</p>



<a name="128789359"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789359" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789359">(Jun 28 2018 at 19:22)</a>:</h4>
<p>do you mean diffs that are committed?</p>



<a name="128789367"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789367" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789367">(Jun 28 2018 at 19:23)</a>:</h4>
<p>let me take a look at the list</p>



<a name="128789370"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789370" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789370">(Jun 28 2018 at 19:23)</a>:</h4>
<p>er, your search</p>



<a name="128789373"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789373" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789373">(Jun 28 2018 at 19:23)</a>:</h4>
<p>yes</p>



<a name="128789375"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789375" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789375">(Jun 28 2018 at 19:23)</a>:</h4>
<p>the stderr files committed</p>



<a name="128789382"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789382" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789382">(Jun 28 2018 at 19:23)</a>:</h4>
<p>I've added one separate commit with that so it's easy to remove :)</p>



<a name="128789383"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789383" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789383">(Jun 28 2018 at 19:23)</a>:</h4>
<p>I see I see</p>



<a name="128789390"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789390" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789390">(Jun 28 2018 at 19:23)</a>:</h4>
<p>that clearly does not belong, hehe</p>



<a name="128789392"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789392" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789392">(Jun 28 2018 at 19:23)</a>:</h4>
<p>so I think this is he case we were discussing, that we cut</p>



<a name="128789432"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789432" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789432">(Jun 28 2018 at 19:24)</a>:</h4>
<p>and yes I think we can hadnle it</p>



<a name="128789435"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789435" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789435">(Jun 28 2018 at 19:24)</a>:</h4>
<p>can you check something for me?</p>



<a name="128789437"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789437" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789437">(Jun 28 2018 at 19:24)</a>:</h4>
<p>yes</p>



<a name="128789440"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789440" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789440">(Jun 28 2018 at 19:24)</a>:</h4>
<p>well, there appear to be two sorts  of problems</p>



<a name="128789447"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789447" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789447">(Jun 28 2018 at 19:24)</a>:</h4>
<p>e.g., we are missing <a href="https://github.com/rust-lang/rust/compare/master...spastorino:make-causal-tracking-lazy#diff-46590a131be6d28cb3935ef7907f3ec4" target="_blank" title="https://github.com/rust-lang/rust/compare/master...spastorino:make-causal-tracking-lazy#diff-46590a131be6d28cb3935ef7907f3ec4">this <code>Drop</code> case</a></p>



<a name="128789475"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789475" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789475">(Jun 28 2018 at 19:25)</a>:</h4>
<p>in some other cases, <a href="https://github.com/rust-lang/rust/compare/master...spastorino:make-causal-tracking-lazy#diff-458f76bc8e159e70c0b51b4ae9123422" target="_blank" title="https://github.com/rust-lang/rust/compare/master...spastorino:make-causal-tracking-lazy#diff-458f76bc8e159e70c0b51b4ae9123422">we report drops but not uses, where the uses appear better</a></p>



<a name="128789521"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128789521" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128789521">(Jun 28 2018 at 19:26)</a>:</h4>
<p>and then <a href="https://github.com/rust-lang/rust/compare/master...spastorino:make-causal-tracking-lazy#diff-4752f41f9479f027f69090cea51a1cc5" target="_blank" title="https://github.com/rust-lang/rust/compare/master...spastorino:make-causal-tracking-lazy#diff-4752f41f9479f027f69090cea51a1cc5">there are the "borrowed value must be live for" sorts of cases</a> &lt;-- this being the one we expected not to see</p>



<a name="128790478"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128790478" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128790478">(Jun 28 2018 at 19:46)</a>:</h4>
<p>ok, would need to investigate all these stuff</p>



<a name="128790545"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128790545" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128790545">(Jun 28 2018 at 19:48)</a>:</h4>
<p>but the thing is ... so we need to include back LiveOther and UniversalRegion, right?</p>



<a name="128790548"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128790548" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128790548">(Jun 28 2018 at 19:48)</a>:</h4>
<p>these are the things that handle some cases</p>



<a name="128790561"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128790561" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128790561">(Jun 28 2018 at 19:48)</a>:</h4>
<p>also ... seems like the BFS is giving the wrong results from what you say</p>



<a name="128790565"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128790565" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128790565">(Jun 28 2018 at 19:48)</a>:</h4>
<p>anyway, need to investigate</p>



<a name="128791131"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128791131" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128791131">(Jun 28 2018 at 20:00)</a>:</h4>
<blockquote>
<p>but the thing is ... so we need to include back LiveOther and UniversalRegion, right?</p>
</blockquote>
<p>no</p>



<a name="128791139"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128791139" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128791139">(Jun 28 2018 at 20:00)</a>:</h4>
<p>not necessarily</p>



<a name="128791144"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128791144" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128791144">(Jun 28 2018 at 20:00)</a>:</h4>
<p>we do need to distinguish "found no use"</p>



<a name="128791146"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128791146" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128791146">(Jun 28 2018 at 20:00)</a>:</h4>
<p>and add some handling after that</p>



<a name="128791151"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128791151" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128791151">(Jun 28 2018 at 20:00)</a>:</h4>
<p>note that <code>LiveOther</code> did nothing</p>



<a name="128791155"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128791155" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128791155">(Jun 28 2018 at 20:00)</a>:</h4>
<p>so this is really about deciding the universal region case</p>



<a name="128791157"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128791157" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128791157">(Jun 28 2018 at 20:00)</a>:</h4>
<p>is your branch commited somewhere?</p>



<a name="128791160"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128791160" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128791160">(Jun 28 2018 at 20:01)</a>:</h4>
<p>I'd like to play with it a bit :)</p>



<a name="128791171"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128791171" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128791171">(Jun 28 2018 at 20:01)</a>:</h4>
<p>but I think we can examine the "subregion" (the region that we were searching for uses of)</p>



<a name="128791176"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128791176" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128791176">(Jun 28 2018 at 20:01)</a>:</h4>
<p>to decide when to issue the universal region case</p>



<a name="128791273"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128791273" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128791273">(Jun 28 2018 at 20:03)</a>:</h4>
<p>yes, the stuff is pushed</p>



<a name="128791276"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128791276" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128791276">(Jun 28 2018 at 20:03)</a>:</h4>
<p>the link is above</p>



<a name="128791277"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128791277" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128791277">(Jun 28 2018 at 20:03)</a>:</h4>
<p>let me paste again</p>



<a name="128791284"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128791284" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128791284">(Jun 28 2018 at 20:03)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/compare/master...spastorino:make-causal-tracking-lazy" target="_blank" title="https://github.com/rust-lang/rust/compare/master...spastorino:make-causal-tracking-lazy">https://github.com/rust-lang/rust/compare/master...spastorino:make-causal-tracking-lazy</a></p>



<a name="128791337"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128791337" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128791337">(Jun 28 2018 at 20:04)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> <a href="https://github.com/spastorino/rust/tree/make-causal-tracking-lazy" target="_blank" title="https://github.com/spastorino/rust/tree/make-causal-tracking-lazy">https://github.com/spastorino/rust/tree/make-causal-tracking-lazy</a></p>



<a name="128791487"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128791487" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128791487">(Jun 28 2018 at 20:08)</a>:</h4>
<p>ok</p>



<a name="128791875"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128791875" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128791875">(Jun 28 2018 at 20:16)</a>:</h4>
<p>doing a build:)</p>



<a name="128793752"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128793752" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128793752">(Jun 28 2018 at 20:52)</a>:</h4>
<p>:)</p>



<a name="128793759"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128793759" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128793759">(Jun 28 2018 at 20:52)</a>:</h4>
<p>it's built now</p>



<a name="128793767"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128793767" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128793767">(Jun 28 2018 at 20:53)</a>:</h4>
<p>cool</p>



<a name="128793777"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128793777" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128793777">(Jun 28 2018 at 20:53)</a>:</h4>
<p>I went out for a bit but I'm back</p>



<a name="128793780"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128793780" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128793780">(Jun 28 2018 at 20:53)</a>:</h4>
<p>I guess you fixed the thing</p>



<a name="128793783"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128793783" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128793783">(Jun 28 2018 at 20:53)</a>:</h4>
<p>:)</p>



<a name="128793787"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128793787" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128793787">(Jun 28 2018 at 20:53)</a>:</h4>
<p>otherwise I can keep investigating it</p>



<a name="128793889"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128793889" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128793889">(Jun 28 2018 at 20:54)</a>:</h4>
<p>I didn't fix anything :)</p>



<a name="128793891"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128793891" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128793891">(Jun 28 2018 at 20:54)</a>:</h4>
<p>but I added some <code>debug!</code> builds</p>



<a name="128793896"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128793896" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128793896">(Jun 28 2018 at 20:55)</a>:</h4>
<p>I was going to investigate the region outlives things</p>



<a name="128793904"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128793904" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128793904">(Jun 28 2018 at 20:55)</a>:</h4>
<p>I <em>think</em> I  know how to fix those but I want to see what is coming out</p>



<a name="128793911"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128793911" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128793911">(Jun 28 2018 at 20:55)</a>:</h4>
<p>also, I should not, I wouldn't be surprised if the output changes a <em>bit</em> here</p>



<a name="128793915"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128793915" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128793915">(Jun 28 2018 at 20:55)</a>:</h4>
<p>that seems ok</p>



<a name="128793919"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128793919" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128793919">(Jun 28 2018 at 20:55)</a>:</h4>
<p>as long as it's not horrible</p>



<a name="128794284"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128794284" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128794284">(Jun 28 2018 at 21:01)</a>:</h4>
<p>ok</p>



<a name="128794288"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128794288" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128794288">(Jun 28 2018 at 21:01)</a>:</h4>
<p>let me know your findings</p>



<a name="128794429"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128794429" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128794429">(Jun 28 2018 at 21:03)</a>:</h4>
<p>ok yes I think this will work</p>



<a name="128794436"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128794436" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128794436">(Jun 28 2018 at 21:03)</a>:</h4>
<p>I still don't know why some of those drop/use things turned out differently</p>



<a name="128794439"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128794439" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128794439">(Jun 28 2018 at 21:04)</a>:</h4>
<p>trying my change, one sec</p>



<a name="128794483"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128794483" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128794483">(Jun 28 2018 at 21:04)</a>:</h4>
<p>the TL;DR is that the "borrowed value must be valid for..." message--</p>



<a name="128794495"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128794495" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128794495">(Jun 28 2018 at 21:04)</a>:</h4>
<p>we can look at the <code>region_sub</code> variable and print it for that region most of the time</p>



<a name="128794504"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128794504" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128794504">(Jun 28 2018 at 21:04)</a>:</h4>
<p>in particular, <code>region_sub</code> is some region that caused us to include this point</p>



<a name="128794516"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128794516" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128794516">(Jun 28 2018 at 21:04)</a>:</h4>
<p>and if it is a "universal region" (e.g., a lifetime parameter)</p>



<a name="128794521"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128794521" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128794521">(Jun 28 2018 at 21:04)</a>:</h4>
<p>and we can't find any use of it</p>



<a name="128794523"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128794523" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128794523">(Jun 28 2018 at 21:04)</a>:</h4>
<p>than we can just print out the region itself, which is what we were doing</p>



<a name="128794540"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128794540" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128794540">(Jun 28 2018 at 21:05)</a>:</h4>
<p>not the best print out really but better than nothing</p>



<a name="128794549"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128794549" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128794549">(Jun 28 2018 at 21:05)</a>:</h4>
<p>(this would benefit from the "causal stuff" that <span class="user-mention" data-user-id="116107">@David Wood</span> and I have been working on, which tries to explain better why one region has to outlive another, but that's not landed yet...)</p>



<a name="128794555"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128794555" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128794555">(Jun 28 2018 at 21:05)</a>:</h4>
<p>man, it's so annoying we have to rebuild libstd</p>



<a name="128794556"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128794556" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128794556">(Jun 28 2018 at 21:05)</a>:</h4>
<p>there has to be some way to skip that</p>



<a name="128794564"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128794564" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128794564">(Jun 28 2018 at 21:05)</a>:</h4>
<p>e.g., my builds (with incremental enabled) would finish pretty darn fast for these changes but for having to rebuild libstd</p>



<a name="128795071"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128795071" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128795071">(Jun 28 2018 at 21:16)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> pushed a commit</p>



<a name="128795078"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128795078" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128795078">(Jun 28 2018 at 21:16)</a>:</h4>
<p>you can see that mos of the lifetime errors are back now</p>



<a name="128795167"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128795167" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128795167">(Jun 28 2018 at 21:18)</a>:</h4>
<p>these are the only tests with remaining diffs:</p>
<div class="codehilite"><pre><span></span>modified   src/test/ui/generator/borrowing.nll.stderr
@@ -2,15 +2,10 @@ error[E0597]: `a` does not live long enough
modified   src/test/ui/generator/ref-escapes-but-not-over-yield.nll.stderr
@@ -1,19 +1,11 @@
modified   src/test/ui/generator/yield-while-iterating.nll.stderr
@@ -19,7 +19,8 @@ LL | |     };
modified   src/test/ui/generator/yield-while-ref-reborrowed.nll.stderr
@@ -11,7 +11,8 @@ LL | |     };
modified   src/test/ui/issue-47646.stderr
@@ -3,15 +3,9 @@ error[E0502]: cannot borrow `heap` as immutable because it is also borrowed as m
modified   src/test/ui/span/destructor-restrictions.nll.stderr
@@ -2,14 +2,9 @@ error[E0597]: `*a` does not live long enough
modified   src/test/ui/span/issue-23338-locals-die-before-temps-of-body.nll.stderr
@@ -2,28 +2,17 @@ error[E0597]: `y` does not live long enough
modified   src/test/ui/span/send-is-not-static-std-sync.nll.stderr
@@ -50,8 +50,8 @@ LL |     tx.send(&amp;*y);
</pre></div>



<a name="128795188"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128795188" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128795188">(Jun 28 2018 at 21:19)</a>:</h4>
<p>you can view the diffs in <a href="https://gist.github.com/nikomatsakis/9087bf03e4d061252005267808ab7f00" target="_blank" title="https://gist.github.com/nikomatsakis/9087bf03e4d061252005267808ab7f00">this gist</a></p>



<a name="128795219"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128795219" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128795219">(Jun 28 2018 at 21:19)</a>:</h4>
<p>I'm gonna <em>guess</em> that the problem here is the region that we are selecting</p>



<a name="128795225"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128795225" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128795225">(Jun 28 2018 at 21:19)</a>:</h4>
<p>i.e., the <code>region_sub</code> we are searching for is not a good choice</p>



<a name="128795232"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128795232" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128795232">(Jun 28 2018 at 21:19)</a>:</h4>
<p>I'm not sure how much to worry about that</p>



<a name="128795236"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128795236" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128795236">(Jun 28 2018 at 21:20)</a>:</h4>
<p>but it'd be interesting to see if some tweaks would make it better</p>



<a name="128796142"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796142" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796142">(Jun 28 2018 at 21:41)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> I feel like to fix some of these cases we may have to tweak the "find use" divide a bit</p>



<a name="128796150"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796150" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796150">(Jun 28 2018 at 21:41)</a>:</h4>
<p>it might be worth landing this and doing a follow-up to do better</p>



<a name="128796172"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796172" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796172">(Jun 28 2018 at 21:41)</a>:</h4>
<p><em>ah</em>, wait, hmm...</p>



<a name="128796249"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796249" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796249">(Jun 28 2018 at 21:43)</a>:</h4>
<p>that mgiht be wrong, at last in some cases</p>



<a name="128796255"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796255" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796255">(Jun 28 2018 at 21:43)</a>:</h4>
<p>I wonder if <code>find_use</code> is doing a DFS and not a BFS</p>



<a name="128796257"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796257" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796257">(Jun 28 2018 at 21:43)</a>:</h4>
<p>that <em>could</em> be related?</p>



<a name="128796264"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796264" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796264">(Jun 28 2018 at 21:43)</a>:</h4>
<p>yes, it is</p>



<a name="128796356"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796356" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796356">(Jun 28 2018 at 21:45)</a>:</h4>
<p>hey ... back</p>



<a name="128796358"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796358" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796358">(Jun 28 2018 at 21:45)</a>:</h4>
<p>let me read all this</p>



<a name="128796369"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796369" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796369">(Jun 28 2018 at 21:45)</a>:</h4>
<p>ok, I'm trying one last tweak to see if it helps ;)</p>



<a name="128796413"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796413" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796413">(Jun 28 2018 at 21:46)</a>:</h4>
<p>but it'd prob be useful to sync a bit in any case, particularly if there are still regressions we know of</p>



<a name="128796415"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796415" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796415">(Jun 28 2018 at 21:46)</a>:</h4>
<p>i.e., so I can explain a bit more deeply</p>



<a name="128796422"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796422" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796422">(Jun 28 2018 at 21:46)</a>:</h4>
<p>and/or sync over Zulip</p>



<a name="128796429"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796429" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796429">(Jun 28 2018 at 21:46)</a>:</h4>
<p><span class="emoji emoji-1f44d" title="+1">:+1:</span></p>



<a name="128796442"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796442" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796442">(Jun 28 2018 at 21:47)</a>:</h4>
<p>I was looking at the test <code>src/test/ui/generator/yield-while-iterating.nll.stderr</code>, in particular</p>



<a name="128796446"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796446" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796446">(Jun 28 2018 at 21:47)</a>:</h4>
<p>I'll just dump out a bit of my thought process here</p>



<a name="128796448"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796448" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796448">(Jun 28 2018 at 21:47)</a>:</h4>
<p>while I wait for this damn build :)</p>



<a name="128796501"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796501" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796501">(Jun 28 2018 at 21:48)</a>:</h4>
<p>so, running with <code>RUST_LOG=rustc_mir::borrow_check</code> I see the following output:</p>
<div class="codehilite"><pre><span></span>DEBUG 2018-06-28T21:40:03Z: rustc_mir::borrow_check::nll::explain_borrow: explain_why_borrow_contains_point(context=Context { kind: AssignRhs, loc: bb6[23] }, borrow=BorrowData { reserve_location: bb6[3], activation_location: None, kind: Mut { allow_two_phase_borrow: fal\
se }, region: &#39;_#2r, borrowed_place: _1, assigned_place: _6 }, kind_place=None)
DEBUG 2018-06-28T21:40:03Z: rustc_mir::borrow_check::nll::explain_borrow: explain_why_borrow_contains_point: borrow_region_vid=&#39;_#2r
DEBUG 2018-06-28T21:40:03Z: rustc_mir::borrow_check::nll::explain_borrow: explain_why_borrow_contains_point: region_sub=&#39;_#35r
</pre></div>



<a name="128796505"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796505" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796505">(Jun 28 2018 at 21:48)</a>:</h4>
<p>those are debug logs I added</p>



<a name="128796513"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796513" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796513">(Jun 28 2018 at 21:48)</a>:</h4>
<p>in particular, you see that we are looking for <code>'_#35r</code></p>



<a name="128796544"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796544" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796544">(Jun 28 2018 at 21:49)</a>:</h4>
<p>that is, in order to explain why the given borrow contains the point <code>bb6[23]</code>, we found that it was because the borrow region (<code>'#2r</code>) was forced to outlive <code>'_#35r</code>, and <code>'_#35r</code> contained <code>bb6[23]</code></p>



<a name="128796546"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796546" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796546">(Jun 28 2018 at 21:49)</a>:</h4>
<p>(make sense?)</p>



<a name="128796548"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796548" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796548">(Jun 28 2018 at 21:49)</a>:</h4>
<blockquote>
<p>I wonder if <code>find_use</code> is doing a DFS and not a BFS</p>
</blockquote>
<p>lol, I took it for granted that was doing a BFS, unsure why and didn't even bother to check</p>



<a name="128796557"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796557" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796557">(Jun 28 2018 at 21:49)</a>:</h4>
<p>my command line btw is this:</p>
<div class="codehilite"><pre><span></span>RUST_LOG=rustc_mir::borrow_check rustc +rust-5-stage1 yield-while-iterating.rs -Zborrowck=mir -Zdump-mir=nll -Zverbose &gt;&amp; killme
</pre></div>



<a name="128796600"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796600" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796600">(Jun 28 2018 at 21:50)</a>:</h4>
<p>so then looking at the MIR dump, I see that <code>'_#35r</code> indeed appears within the type of the variable <code>b</code></p>



<a name="128796607"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796607" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796607">(Jun 28 2018 at 21:50)</a>:</h4>
<p>so the curious thing is:</p>



<a name="128796609"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796609" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796609">(Jun 28 2018 at 21:50)</a>:</h4>
<p>why are we highlighting the <strong>drop</strong> of <code>b</code></p>



<a name="128796612"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796612" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796612">(Jun 28 2018 at 21:50)</a>:</h4>
<p>and not the <strong>regular use</strong>?</p>



<a name="128796613"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796613" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796613">(Jun 28 2018 at 21:50)</a>:</h4>
<p>the regular use comes earlier really</p>



<a name="128796619"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796619" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796619">(Jun 28 2018 at 21:50)</a>:</h4>
<p>actually, using a BFS doesn't fix it, which seems obvious now that I've been writing this out</p>



<a name="128796631"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796631" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796631">(Jun 28 2018 at 21:51)</a>:</h4>
<p>but I think this particular test is still fixable by fixing the search itself</p>



<a name="128796641"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796641" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796641">(Jun 28 2018 at 21:51)</a>:</h4>
<p>you're explaining now how did you figured out that find_use is wrong, right?</p>



<a name="128796642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796642">(Jun 28 2018 at 21:51)</a>:</h4>
<p>yes</p>



<a name="128796646"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796646" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796646">(Jun 28 2018 at 21:51)</a>:</h4>
<p>ok</p>



<a name="128796654"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796654" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796654">(Jun 28 2018 at 21:51)</a>:</h4>
<p>so BFS doesn't fix it?</p>



<a name="128796658"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796658" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796658">(Jun 28 2018 at 21:51)</a>:</h4>
<p>we're currently getting this output:</p>
<div class="codehilite"><pre><span></span>error[E0502]: cannot borrow `x` as immutable because it is also borrowed as mutable
  --&gt; yield-while-iterating.rs:67:20
   |
62 |       let mut b = || {
   |  _________________-
63 | |         for p in &amp;mut x {
64 | |             yield p;
65 | |         }
66 | |     };
   | |_____- mutable borrow occurs here
67 |       println!(&quot;{}&quot;, x[0]); //~ ERROR
   |                      ^ immutable borrow occurs here
68 |       b.resume();
69 |   }
   |   - borrow later used here, when `b` is dropped
</pre></div>



<a name="128796669"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796669" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796669">(Jun 28 2018 at 21:51)</a>:</h4>
<p>but the weird thing is how it's highlighting when <code>b</code> is dropped -- where there is a regular use (<code>b.resume()</code>) one line above</p>



<a name="128796674"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796674" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796674">(Jun 28 2018 at 21:51)</a>:</h4>
<p>actually I think the reason for this is probably something like this:</p>



<a name="128796718"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796718" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796718">(Jun 28 2018 at 21:52)</a>:</h4>
<p>if you look at the MIR graph, you will find that e.g. the <code>println!</code> might panic</p>



<a name="128796722"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796722" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796722">(Jun 28 2018 at 21:52)</a>:</h4>
<p>if it were to panic, then it would drop <code>b</code></p>



<a name="128796730"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796730" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796730">(Jun 28 2018 at 21:52)</a>:</h4>
<p>and indeed that is "closer" in some sense (in terms of the distance through the graph) than <code>b.resume()</code></p>



<a name="128796736"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796736" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796736">(Jun 28 2018 at 21:52)</a>:</h4>
<p>but I think we'd still prefer to print regular uses</p>



<a name="128796738"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796738" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796738">(Jun 28 2018 at 21:52)</a>:</h4>
<p>over drops</p>



<a name="128796739"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796739" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796739">(Jun 28 2018 at 21:53)</a>:</h4>
<p>they are more intuitive</p>



<a name="128796747"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796747" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796747">(Jun 28 2018 at 21:53)</a>:</h4>
<p>I can see a couple of possible fixes for this:</p>



<a name="128796751"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796751" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796751">(Jun 28 2018 at 21:53)</a>:</h4>
<p>why does it points to { instead of the println! though?</p>



<a name="128796755"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796755" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796755">(Jun 28 2018 at 21:53)</a>:</h4>
<p>if we find a use in a dtor, we could keep looking until we find a regualr use (if we do...)</p>



<a name="128796760"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796760" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796760">(Jun 28 2018 at 21:53)</a>:</h4>
<blockquote>
<p>why does it points to { instead of the println! though?</p>
</blockquote>
<p>the println is not the point where the dtor runs</p>



<a name="128796761"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796761" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796761">(Jun 28 2018 at 21:53)</a>:</h4>
<p>the dtor runs when you exit the block</p>



<a name="128796764"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796764" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796764">(Jun 28 2018 at 21:53)</a>:</h4>
<p>so that it was it is highlighting</p>



<a name="128796765"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796765" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796765">(Jun 28 2018 at 21:53)</a>:</h4>
<p>that doesn't seem wrong to me</p>



<a name="128796809"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796809" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796809">(Jun 28 2018 at 21:54)</a>:</h4>
<p>what is dtor? destructor?</p>



<a name="128796810"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796810" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796810">(Jun 28 2018 at 21:54)</a>:</h4>
<p>I'm just saying the path that you might take to reach the <code>}</code>  in fewer steps than the regular use</p>



<a name="128796811"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796811" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796811">(Jun 28 2018 at 21:54)</a>:</h4>
<p>yes, dtor == destructor</p>



<a name="128796814"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796814" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796814">(Jun 28 2018 at 21:54)</a>:</h4>
<p>yes, I see</p>



<a name="128796817"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796817" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796817">(Jun 28 2018 at 21:54)</a>:</h4>
<p>alternatively, we could perhaps just not walk unwind paths</p>



<a name="128796819"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796819" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796819">(Jun 28 2018 at 21:54)</a>:</h4>
<p>after all, everything that gets dropped on an unwind</p>



<a name="128796820"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796820" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796820">(Jun 28 2018 at 21:54)</a>:</h4>
<p><em>also</em> gets dropped on a regular path</p>



<a name="128796826"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796826" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796826">(Jun 28 2018 at 21:54)</a>:</h4>
<p>except I think that's not entirely true, e.g. for infinte loops maybe not</p>



<a name="128796830"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796830" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796830">(Jun 28 2018 at 21:54)</a>:</h4>
<p>ya, that seems better</p>



<a name="128796835"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796835" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796835">(Jun 28 2018 at 21:55)</a>:</h4>
<p>which seems better?</p>



<a name="128796849"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796849" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796849">(Jun 28 2018 at 21:55)</a>:</h4>
<p>to not walk unwind paths</p>



<a name="128796855"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796855" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796855">(Jun 28 2018 at 21:55)</a>:</h4>
<p>there is yet another alternative</p>



<a name="128796856"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796856" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796856">(Jun 28 2018 at 21:55)</a>:</h4>
<p>which is to just push unwind paths onto a deferred list</p>



<a name="128796860"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796860" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796860">(Jun 28 2018 at 21:55)</a>:</h4>
<p>and walk them only if the rest fails :)</p>



<a name="128796866"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796866" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796866">(Jun 28 2018 at 21:55)</a>:</h4>
<p>we could try just skipping unwind paths for now</p>



<a name="128796867"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796867" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796867">(Jun 28 2018 at 21:55)</a>:</h4>
<p>yeah, seems good</p>



<a name="128796877"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796877" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796877">(Jun 28 2018 at 21:55)</a>:</h4>
<p>and if we find a case where it seems to be missing something</p>



<a name="128796879"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796879" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796879">(Jun 28 2018 at 21:55)</a>:</h4>
<p>then we worry about it</p>



<a name="128796930"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796930" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796930">(Jun 28 2018 at 21:56)</a>:</h4>
<p>I'm trying to see how easy it is to identify an unwind path</p>



<a name="128796933"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796933" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796933">(Jun 28 2018 at 21:56)</a>:</h4>
<p>but should unwind paths be considered to report errors?</p>



<a name="128796936"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796936" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796936">(Jun 28 2018 at 21:56)</a>:</h4>
<p>not <em>that</em> easy</p>



<a name="128796937"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796937" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796937">(Jun 28 2018 at 21:56)</a>:</h4>
<p>but doable :)</p>



<a name="128796939"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796939" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796939">(Jun 28 2018 at 21:56)</a>:</h4>
<p>:)</p>



<a name="128796940"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796940" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796940">(Jun 28 2018 at 21:56)</a>:</h4>
<p>we hvae to add a helper fn I think to <code>TerminatorKind</code></p>



<a name="128796947"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796947" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796947">(Jun 28 2018 at 21:56)</a>:</h4>
<blockquote>
<p>but should unwind paths be considered to report errors?</p>
</blockquote>
<p>well, I don't know, that's the question :)</p>



<a name="128796949"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796949" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796949">(Jun 28 2018 at 21:57)</a>:</h4>
<p>as I said, I think 99% of the time they are not needed</p>



<a name="128796957"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796957" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796957">(Jun 28 2018 at 21:57)</a>:</h4>
<p>and they are going to lead to surprising reports for users somehow</p>



<a name="128796960"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796960" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796960">(Jun 28 2018 at 21:57)</a>:</h4>
<p>because unwinding is less obvious</p>



<a name="128796964"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796964" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796964">(Jun 28 2018 at 21:57)</a>:</h4>
<p>so if a non-unwind path can be found, seems better</p>



<a name="128796966"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796966" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796966">(Jun 28 2018 at 21:57)</a>:</h4>
<p>I mean, that's never related to the code the user wrote, right?</p>



<a name="128796972"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796972" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796972">(Jun 28 2018 at 21:57)</a>:</h4>
<p>well, they wrote the function call :)</p>



<a name="128796976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796976">(Jun 28 2018 at 21:57)</a>:</h4>
<p>that triggers the unwind</p>



<a name="128796982"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128796982" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128796982">(Jun 28 2018 at 21:57)</a>:</h4>
<p>but I think ignoring unwind is a good idea</p>



<a name="128797030"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797030" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797030">(Jun 28 2018 at 21:58)</a>:</h4>
<p>or at least worth a try</p>



<a name="128797033"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797033" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797033">(Jun 28 2018 at 21:58)</a>:</h4>
<p>and relatively simple to do</p>



<a name="128797036"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797036" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797036">(Jun 28 2018 at 21:58)</a>:</h4>
<p><span class="emoji emoji-1f44d" title="+1">:+1:</span></p>



<a name="128797048"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797048" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797048">(Jun 28 2018 at 21:58)</a>:</h4>
<p>I just pushed a commit</p>



<a name="128797052"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797052" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797052">(Jun 28 2018 at 21:58)</a>:</h4>
<p>that makes the search into a BFS</p>



<a name="128797060"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797060" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797060">(Jun 28 2018 at 21:58)</a>:</h4>
<p>ok</p>



<a name="128797077"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797077" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797077">(Jun 28 2018 at 21:59)</a>:</h4>
<p>since it still seems better</p>



<a name="128797083"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797083" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797083">(Jun 28 2018 at 21:59)</a>:</h4>
<p>(it will find the shortest path)</p>



<a name="128797092"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797092" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797092">(Jun 28 2018 at 21:59)</a>:</h4>
<p>but I can walk you through how to skip unwinds if you want</p>



<a name="128797097"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797097" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797097">(Jun 28 2018 at 21:59)</a>:</h4>
<p>so ... with all the code in my branch the missing thing is to skip unwind paths?</p>



<a name="128797101"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797101" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797101">(Jun 28 2018 at 21:59)</a>:</h4>
<p>I think so</p>



<a name="128797104"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797104" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797104">(Jun 28 2018 at 21:59)</a>:</h4>
<p>we'll see how much that fixes</p>



<a name="128797107"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797107" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797107">(Jun 28 2018 at 21:59)</a>:</h4>
<p>ok</p>



<a name="128797108"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797108" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797108">(Jun 28 2018 at 21:59)</a>:</h4>
<p>but I think it would fix this test at least</p>



<a name="128797115"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797115" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797115">(Jun 28 2018 at 21:59)</a>:</h4>
<p>it's still a hypothesis to some extent</p>



<a name="128797119"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797119" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797119">(Jun 28 2018 at 21:59)</a>:</h4>
<p>ok</p>



<a name="128797136"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797136" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797136">(Jun 28 2018 at 22:00)</a>:</h4>
<blockquote>
<p>but I can walk you through how to skip unwinds if you want</p>
</blockquote>
<p><span class="emoji emoji-1f44d" title="+1">:+1:</span></p>



<a name="128797189"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797189" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797189">(Jun 28 2018 at 22:00)</a>:</h4>
<p>so in your code there is this loop here:</p>
<div class="codehilite"><pre><span></span><span class="w">                        </span><span class="n">queue</span><span class="p">.</span><span class="n">extend</span><span class="p">(</span><span class="n">block_data</span><span class="p">.</span><span class="n">terminator</span><span class="p">().</span><span class="n">successors</span><span class="p">().</span><span class="n">map</span><span class="p">(</span><span class="o">|&amp;</span><span class="n">basic_block</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">                            </span><span class="n">Location</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">                                </span><span class="n">statement_index</span>: <span class="mi">0</span><span class="p">,</span><span class="w"></span>
<span class="w">                                </span><span class="n">block</span>: <span class="nc">basic_block</span><span class="p">,</span><span class="w"></span>
<span class="w">                            </span><span class="p">}</span><span class="w"></span>
<span class="w">                        </span><span class="p">}));</span><span class="w"></span>
</pre></div>



<a name="128797190"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797190" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797190">(Jun 28 2018 at 22:00)</a>:</h4>
<p>or, not loop, but line</p>



<a name="128797194"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797194" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797194">(Jun 28 2018 at 22:00)</a>:</h4>
<p>which takes all the successors of a node and adds them to the <code>queue</code> (it used to be a stack, but I changed it to a queue to make it a BFS)</p>



<a name="128797202"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797202" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797202">(Jun 28 2018 at 22:00)</a>:</h4>
<p>we basically want to filter out the "unwind" successors there</p>



<a name="128797203"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797203" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797203">(Jun 28 2018 at 22:00)</a>:</h4>
<p>ya</p>



<a name="128797211"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797211" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797211">(Jun 28 2018 at 22:01)</a>:</h4>
<p>the nice property is that there is at most one such successor</p>



<a name="128797223"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797223" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797223">(Jun 28 2018 at 22:01)</a>:</h4>
<p>so roughly what we want is this:</p>
<div class="codehilite"><pre><span></span><span class="kd">let</span><span class="w"> </span><span class="n">unwind_successor</span>: <span class="nb">Option</span><span class="o">&lt;</span><span class="n">BasicBlock</span><span class="o">&gt;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">block_data</span><span class="p">.</span><span class="n">terminator</span><span class="p">().</span><span class="n">unwind_successor</span><span class="p">();</span><span class="w"></span>
<span class="n">queue</span><span class="p">.</span><span class="n">extend</span><span class="p">(</span><span class="n">block_data</span><span class="p">.</span><span class="n">terminator</span><span class="p">().</span><span class="n">successors</span><span class="p">()</span><span class="w"></span>
<span class="w">    </span><span class="p">.</span><span class="n">filter</span><span class="p">(</span><span class="o">|&amp;</span><span class="n">bb</span><span class="o">|</span><span class="w"> </span><span class="nb">Some</span><span class="p">(</span><span class="n">bb</span><span class="p">)</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">unwind_successor</span><span class="p">)</span><span class="w"></span>
<span class="w">    </span><span class="p">.</span><span class="n">map</span><span class="p">(</span><span class="o">|&amp;</span><span class="n">basic_block</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">                            </span><span class="n">Location</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">                                </span><span class="n">statement_index</span>: <span class="mi">0</span><span class="p">,</span><span class="w"></span>
<span class="w">                                </span><span class="n">block</span>: <span class="nc">basic_block</span><span class="p">,</span><span class="w"></span>
<span class="w">                            </span><span class="p">}</span><span class="w"></span>
<span class="w">                        </span><span class="p">}));</span><span class="w"></span>
</pre></div>



<a name="128797267"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797267" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797267">(Jun 28 2018 at 22:02)</a>:</h4>
<p>the only catch is that this <code>unwind_successor</code> helper doesn't exist :)</p>



<a name="128797268"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797268" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797268">(Jun 28 2018 at 22:02)</a>:</h4>
<p>ya</p>



<a name="128797270"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797270" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797270">(Jun 28 2018 at 22:02)</a>:</h4>
<p>there is a very similar one</p>



<a name="128797277"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797277" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797277">(Jun 28 2018 at 22:02)</a>:</h4>
<p>but not quite the same</p>



<a name="128797280"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797280" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797280">(Jun 28 2018 at 22:02)</a>:</h4>
<p>:)</p>



<a name="128797287"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797287" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797287">(Jun 28 2018 at 22:02)</a>:</h4>
<p>there is <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc/mir/enum.TerminatorKind.html#method.unwind_mut" target="_blank" title="https://doc.rust-lang.org/nightly/nightly-rustc/rustc/mir/enum.TerminatorKind.html#method.unwind_mut">https://doc.rust-lang.org/nightly/nightly-rustc/rustc/mir/enum.TerminatorKind.html#method.unwind_mut</a></p>



<a name="128797288"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797288" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797288">(Jun 28 2018 at 22:02)</a>:</h4>
<p><code>unwind_mut</code></p>



<a name="128797289"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797289" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797289">(Jun 28 2018 at 22:02)</a>:</h4>
<p>but it returns a <code>Option&lt;&amp;mut BasicBlock&gt;</code></p>



<a name="128797293"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797293" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797293">(Jun 28 2018 at 22:03)</a>:</h4>
<p>i.e., a reference that lets you <em>modify</em> the unwind successor</p>



<a name="128797304"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797304" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797304">(Jun 28 2018 at 22:03)</a>:</h4>
<p>I think we basically to copy and paste that</p>



<a name="128797305"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797305" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797305">(Jun 28 2018 at 22:03)</a>:</h4>
<p>to something that returns <code>Option&lt;BasicBlock&gt;</code></p>



<a name="128797309"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797309" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797309">(Jun 28 2018 at 22:03)</a>:</h4>
<p>(I would not make it <code>Option&lt;&amp;BasicBlock&gt;</code> -- no point to returning a reference to an integer)</p>



<a name="128797316"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797316" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797316">(Jun 28 2018 at 22:03)</a>:</h4>
<p>kind of annoying to have to copy and paste but I don't know a better way</p>



<a name="128797349"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797349" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797349">(Jun 28 2018 at 22:04)</a>:</h4>
<p>(that is one of Rust's flaws :)  it's hard to abstract over &amp; and &amp;mut)</p>



<a name="128797391"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797391" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797391">(Jun 28 2018 at 22:05)</a>:</h4>
<p>seems easy</p>



<a name="128797392"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797392" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797392">(Jun 28 2018 at 22:05)</a>:</h4>
<p>cool</p>



<a name="128797393"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797393" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797393">(Jun 28 2018 at 22:05)</a>:</h4>
<p>this is the source, incidentally: <a href="https://doc.rust-lang.org/nightly/nightly-rustc/src/rustc/mir/mod.rs.html#1168-1191" target="_blank" title="https://doc.rust-lang.org/nightly/nightly-rustc/src/rustc/mir/mod.rs.html#1168-1191">https://doc.rust-lang.org/nightly/nightly-rustc/src/rustc/mir/mod.rs.html#1168-1191</a></p>



<a name="128797394"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797394" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797394">(Jun 28 2018 at 22:05)</a>:</h4>
<p>:)</p>



<a name="128797398"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797398" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797398">(Jun 28 2018 at 22:05)</a>:</h4>
<p>yeah, should be easy enough I think</p>



<a name="128797411"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797411" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797411">(Jun 28 2018 at 22:05)</a>:</h4>
<p>do you prefer me to fix the commits and merge stuff from your commits and mine?</p>



<a name="128797417"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797417" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797417">(Jun 28 2018 at 22:05)</a>:</h4>
<p>so there are no spurious stuff?</p>



<a name="128797475"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797475" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797475">(Jun 28 2018 at 22:06)</a>:</h4>
<p>actually haven't checked your commits yet, but the last I made doesn't make any sense</p>



<a name="128797488"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797488" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797488">(Jun 28 2018 at 22:07)</a>:</h4>
<p>and the previous one is incomplete, so ... I guess it's better to merge them all into one thing</p>



<a name="128797558"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797558" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797558">(Jun 28 2018 at 22:08)</a>:</h4>
<p>probably I would just squash into one commit</p>



<a name="128797559"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797559" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797559">(Jun 28 2018 at 22:08)</a>:</h4>
<p>the history is pretty messy</p>



<a name="128797560"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797560" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797560">(Jun 28 2018 at 22:08)</a>:</h4>
<p>I don't care if you preseve my authorship if that is what you are asking :)</p>



<a name="128797562"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797562" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797562">(Jun 28 2018 at 22:08)</a>:</h4>
<p>or at least squash into a few commits</p>



<a name="128797567"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797567" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797567">(Jun 28 2018 at 22:08)</a>:</h4>
<p>(if you see some way to break it up, great)</p>



<a name="128797571"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797571" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797571">(Jun 28 2018 at 22:08)</a>:</h4>
<p>yep</p>



<a name="128797591"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797591" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797591">(Jun 28 2018 at 22:09)</a>:</h4>
<p>I'd try to do something</p>



<a name="128797667"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797667" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797667">(Jun 28 2018 at 22:10)</a>:</h4>
<p>unsure if I will be able now but a bit later probably</p>



<a name="128797670"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797670" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797670">(Jun 28 2018 at 22:10)</a>:</h4>
<p>this should be finished by today :)</p>



<a name="128797674"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797674" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797674">(Jun 28 2018 at 22:10)</a>:</h4>
<p>that'd be great</p>



<a name="128797676"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797676" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797676">(Jun 28 2018 at 22:10)</a>:</h4>
<p>I can't wait to land this plus the other things</p>



<a name="128797678"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797678" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797678">(Jun 28 2018 at 22:10)</a>:</h4>
<p>and do some new profiles :)</p>



<a name="128797680"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128797680" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128797680">(Jun 28 2018 at 22:10)</a>:</h4>
<p>:)</p>



<a name="128800298"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128800298" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128800298">(Jun 28 2018 at 23:12)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> done, compiling</p>



<a name="128801008"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128801008" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128801008">(Jun 28 2018 at 23:35)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> any updates? :)</p>



<a name="128801084"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128801084" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128801084">(Jun 28 2018 at 23:37)</a>:</h4>
<p>yes</p>



<a name="128801085"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128801085" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128801085">(Jun 28 2018 at 23:37)</a>:</h4>
<p>just pushed</p>



<a name="128801087"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128801087" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128801087">(Jun 28 2018 at 23:37)</a>:</h4>
<p>want to see just the latest diff?</p>



<a name="128801089"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128801089" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128801089">(Jun 28 2018 at 23:37)</a>:</h4>
<p>I have it locally</p>



<a name="128801129"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128801129" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128801129">(Jun 28 2018 at 23:38)</a>:</h4>
<p>I pushed by melting it with the previous commits</p>



<a name="128801132"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128801132" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128801132">(Jun 28 2018 at 23:38)</a>:</h4>
<p>I'm opening a PR</p>



<a name="128801149"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128801149" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128801149">(Jun 28 2018 at 23:39)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/pull/51889" target="_blank" title="https://github.com/rust-lang/rust/pull/51889">https://github.com/rust-lang/rust/pull/51889</a></p>



<a name="128801150"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128801150" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128801150">(Jun 28 2018 at 23:39)</a>:</h4>
<p>forgot to run rustfmt</p>



<a name="128801153"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128801153" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128801153">(Jun 28 2018 at 23:39)</a>:</h4>
<p>this will probably fail on CI</p>



<a name="128801155"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128801155" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128801155">(Jun 28 2018 at 23:39)</a>:</h4>
<p>running rustfmt and pushing</p>



<a name="128801479"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128801479" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128801479">(Jun 28 2018 at 23:46)</a>:</h4>
<p>(one nice add'l thing about this approach is that it is more polonius friendly in the future)</p>



<a name="128801488"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128801488" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128801488">(Jun 28 2018 at 23:47)</a>:</h4>
<p>:)</p>



<a name="128801491"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128801491" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128801491">(Jun 28 2018 at 23:47)</a>:</h4>
<p>force pushed again</p>



<a name="128801494"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128801494" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128801494">(Jun 28 2018 at 23:47)</a>:</h4>
<p>removed a wrong dead_code thing and run rustfmt over the files</p>



<a name="128801650"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128801650" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128801650">(Jun 28 2018 at 23:51)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> let me know if you find something that needs to be changed</p>



<a name="128801651"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128801651" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128801651">(Jun 28 2018 at 23:51)</a>:</h4>
<p>cool</p>



<a name="128801652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128801652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128801652">(Jun 28 2018 at 23:51)</a>:</h4>
<p>I gotta go put my daughter to bed</p>



<a name="128801654"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128801654" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128801654">(Jun 28 2018 at 23:51)</a>:</h4>
<p>will look after</p>



<a name="128801658"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128801658" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128801658">(Jun 28 2018 at 23:51)</a>:</h4>
<p>ok</p>



<a name="128801702"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128801702" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128801702">(Jun 28 2018 at 23:52)</a>:</h4>
<p>going to have dinner</p>



<a name="128801716"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128801716" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128801716">(Jun 28 2018 at 23:52)</a>:</h4>
<p>will be kind of around but if there is something to fix will do a bit later for sure</p>



<a name="128804989"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128804989" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128804989">(Jun 29 2018 at 01:33)</a>:</h4>
<p>ok so the perf results are...confusing. On the one hand, the total times I see didn't seem to change that much. On the other hand, this <em>did</em> knock those fns out of the profile as expected</p>



<a name="128804991"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128804991" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128804991">(Jun 29 2018 at 01:33)</a>:</h4>
<p>I'm curious to see what the perf server finds</p>



<a name="128804992"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128804992" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128804992">(Jun 29 2018 at 01:33)</a>:</h4>
<p>it seems to be a bit more consistent somehow</p>



<a name="128805036"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128805036" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128805036">(Jun 29 2018 at 01:34)</a>:</h4>
<p>current perf graph: <a href="https://gist.github.com/nikomatsakis/61b093fdf1cbff1f10bebfe532bdae8e" target="_blank" title="https://gist.github.com/nikomatsakis/61b093fdf1cbff1f10bebfe532bdae8e">https://gist.github.com/nikomatsakis/61b093fdf1cbff1f10bebfe532bdae8e</a></p>



<a name="128836341"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking/near/128836341" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jake Goulding <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/issue-51710-lazy-causal-tracking.html#128836341">(Jun 29 2018 at 16:07)</a>:</h4>
<blockquote>
<p>(that is one of Rust's flaws :)  it's hard to abstract over &amp; and &amp;mut)</p>
</blockquote>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> when are you going to fix that, anyway? <span class="emoji emoji-1f61c" title="stuck out tongue winking eye">:stuck_out_tongue_winking_eye:</span></p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>